UUencode アルゴリズムを作成しようとしていますが、コードの一部に次のものが含まれています。
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 がありません。
また、「s」から取得したバイナリ文字列は次のとおりであるため、最後の 2 行のコードを含めました1110011
。先頭に 0 がありません。
誤って右にスクロールしたかどうかを確認しましたが、そうではないようです。