私が現在知っているように、以下は正しいです:
- char 8ビット値(例:0 0 0 0 0 0 0 0)
- 短い16ビット値(例:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
- int32ビット値例000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
私は上記がばかげた証拠に聞こえることを知っていますが、私はすべてのステップを説明したいと思います。
したがって、値1と29があります。これらは、正しくない場合は両方とも8ビットです。
1: 0 0 0 0 0 0 0 1
29: 0 0 0 1 1 0 0 1
これらは8ビットなので、次のことができます
char ff = (char) 1;
char off = (char) 29;
それで、私の2つの価値観について話しています。
これらの値を連結して、バイナリで129のようになります。000 0 0 0 0 1 0 0 0 1 1 0 0 1
私は現在やっています:
short concat = (short) (ff | off)
しかし、バイナリが285になるはずのときに、結果29を取得します。
32768 16384 8192 4096 2048 1024 512256128 64 32 16 8 4 2 1
0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1
地獄のイムがうまくいかないところ:(?
-コードソリューションの更新-
byte of= (byte) 29;
byte fm1 = (byte) 1;
char ph1 = (char) (fm1<<8 | of);
または短いph2=(short)(fm1 << 8 | of);
両方とも16ビットがあるので何が良いですか?
System.out.println((int)ph1);