1

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 がありません。

誤って右にスクロールしたかどうかを確認しましたが、そうではないようです。

4

1 に答える 1