假設我有字符「C」,其ASCII碼是0110 0111
。我如何迭代它的位?我想從這些1和0構建一個向量......重複字符的位
重複字符的位
回答
您可以將它們使用逐運營商能夠在輕鬆地重複:
char c = 'C';
for (int i = 0; i < 8; ++i)
{
// extract the i-th bit
int b = ((c & 1<<i) >> i);
// b will be 1 if i-th bit is set, 0 otherwise
// do whatever you want with b
}
則可對其進行優化(如在評論建議):
int b = ((c >> i) & 1);
一個字符有一個整數值。像這樣將工作:
int myChar = 42;
String binstr = Integer.toBinaryString(myChar);
其餘的我將離開你作爲練習 - 但你現在要做的是疊代的二進制值的字符串表示,並盡一切是你的計劃在做。
的位運算速度更快,可能是更好的答案。上述解決方案可能更易於閱讀。 – 2010-03-19 20:30:51
在每個你關心的位置只要使用按位檢查。類似下面的內容將創建一個數組bits
,其中包含各個值。
char c = 'C';
int[] bits = new int[8];
int j = 0;
for(int i = 1; i <= 256; i *= 2){
bits[j++] = (c & i) > 0 ? 1 : 0;
}
我可以將「我* = 2」改爲「i << 1」嗎? – 2010-03-19 20:46:49
@Jeff,當然,但現在這是一個體面的,正確的和可讀的答案。這樣的手鐲應該不值得讚揚。 – 2010-03-19 21:08:57
我沒投下票。其實我投票並提交了你的展開版本。 Ppl應該解釋投票。 – 2010-03-20 02:01:49
你必須爲位操作做到這一點:
即:
while (my_char > 0) {
if my_char & 1
char_vector.push 1 // if the right most bit is 1
else
char_vector.push 0 // right most bit must be 0 if we fell through to the else
my_char = my_char >> 1 // right shift one position
}
,如果你需要,你可以墊用剩下的0 char_vector,你右移後歸零。
這對我來說不是Java: -/ – 2010-03-19 20:31:36
原諒類似c的僞代碼。 ;)它沒有意義,或者你只是提到我沒有編寫正確的語法代碼? (當然,我不打算) – 2010-03-22 20:56:43
char c = 'C';
Vector<Boolean> vector = new Vector<Boolean>(16);
for (int i = Character.SIZE-1; i >=0; --i) {
int num = c >> i;
boolean set = (num & 1) == 1;
vector.add(Boolean.valueOf(set));
}
展開的循環:
int[] bits = new int[8]
bits[0] = (c & 1) > 0 ? 1 : 0;
bits[1] = (c & 2) > 0 ? 1 : 0;
bits[2] = (c & 4) > 0 ? 1 : 0;
bits[3] = (c & 8) > 0 ? 1 : 0;
bits[4] = (c & 16) > 0 ? 1 : 0;
bits[5] = (c & 32) > 0 ? 1 : 0;
bits[6] = (c & 64) > 0 ? 1 : 0;
bits[7] = (c & 128) > 0 ? 1 : 0;
- 1. 確定字符串中字符重複的長度和位置
- 2. 字符串內字符的位置和重複
- 3. 重複字符
- 4. 刪除字符串中的重複或重複字符
- 5. 字符串的非重複字符
- 6. STEPWISE重複字符串中的字符
- 7. 字符串中最重複的字符
- 8. 重複字符串
- 9. 重複的字符串
- 10. 刪除重複的字符
- 11. 重複的字符串
- 12. 去除重複複製的字符
- 13. 如何指出字符串中所有重複字符的索引位置
- 14. 重複編碼器(字符串中的重複字母)
- 15. 如何解碼重複的無符號MSB和LSB 8位字?
- 16. 返回給定字符串位置的重複計數
- 17. sed用一個字符的多個重複代替多個字符的重複
- 18. 伯爵重複字符,包括字符串蟒蛇非重複的人的
- 19. java字符串重複的字母表
- 20. 在字符串中重複
- 21. ,檢查重複字符
- 22. 突出重複字符串
- 23. SQL重複字符串
- 24. ZIP Format重複字符
- 25. java替換重複字符
- 26. 刪除重複字符
- 27. Oracle刪除重複字符
- 28. python3,如何重複字符
- 29. MySQL REGEXP重複字符
- 30. 重複字符串壓縮
我會和(c >> i)&1 – Jimmy 2010-03-19 20:28:39
Geez,夥計們,當問題看起來像作業一樣,不要給代碼......只是在正確的方向推動! – 2010-03-19 20:58:19
從OP的檔案中可以看出,他很清楚他不是學生。 – 2010-03-22 20:58:37