我試圖做一個UUENCODE算法和我的代碼部分包含此:只有7位Java char?
for(int x = 0; x < my_chars.length; x++)
{
if((x+1) % 3 == 0)
{
char first = my_chars[x-2];
char second = my_chars[x-1];
char third = my_chars[x];
int first_binary = Integer.parseInt(Integer.toBinaryString(first));
int second_binary = Integer.parseInt(Integer.toBinaryString(second));
int third_binary = Integer.parseInt(Integer.toBinaryString(third));
int n = (((first << 8) | second) << 8) | third;
System.out.print(my_chars[x-2] + "" + my_chars[x-1] + my_chars[x] + Integer.toBinaryString(n));
}
}
System.out.println();
System.out.println(Integer.toBinaryString('s'));
我試圖做到的,是那些8位從字符,我得到合併成一個大的24位INT。我面臨的問題是結果是23位整數。說我的前3個字符爲:
- 'T' 與
01010100
- 'U' 與
01110101
- 'R' 的與
01110010
從我的程序中得到的結果是由這些位形成的int: 10101000111010101110010
缺少從'T'表示的開始處的0。
此外,我還包括了最後2行代碼,因爲我從's'得到的二進制字符串是:1110011
,它在開始時缺少0。
我檢查過我是否錯誤地滾動到右側,但似乎並沒有這樣做。
ASCII字母是7位。一切都很有意義。如果你有一點缺點,你可以考慮一個前導零,'n'無論如何都有32位。 – jlordo