符号なし16ビット版および64ビット版の整数
-
26-10-2019 - |
質問
どを製造しているのでし16ビット符号無し整数および64ビット符号なし整数値をJava?この質問には関係の実施を基本にしてください。私の位置を変更する。
他にも関連するビットの仕様この問題に関連して
- 最も重要なビットを必ず0になります。
- けネットワークバイト順です。
アプリケーションのコンテキスト:のいずれも形式)を表す長さのデータ送信されます。の長さは大きます。私はこれらの長さを長くするメッセージとして送信されます。
だから: long length = getLength();
そして変換する必要があるので長可変"長さ"のいずれかに記のように大きます。にんなっく .getBytes()
時を送りたいの長さです。受取人として解釈します。
解決
場合に最も重要なビットはゼロに、その数値が同じかどうかではないかといわれていた符号なし(その二の補数表現).そのためのインスタンスは、16ビット整数のMSBがゼロの数値から 0
へ 32767
イルが含まれます。
と仮定すると書いている OutputStream
ならびにお客さまの定義"ネットワーク"が最も大きなバイトが最初に、それに必要なもののようになります:
public void writeShort(OutputStream os, short s) throws IOException {
os.write((byte) (s >> 8));
os.write((byte) s);
}
や
public void writeLong(OutputStream os, long l) throws IOException {
os.write((byte) (l >> 56));
os.write((byte) (l >> 48));
os.write((byte) (l >> 40));
os.write((byte) (l >> 32));
os.write((byte) (l >> 24));
os.write((byte) (l >> 16));
os.write((byte) (l >> 8));
os.write((byte) l);
}
このような作品に署名し、符号なし整数です。(というよりも、Java、働いているそうでない場合は、引数を現在の を表す 署名または符号なし整数です。)
他のヒント
Javaのない符号なしデータ型についてはこちら: http://darksleep.com/player/JavaAndUnsignedTypes.html)
intが32ビット、64ビット、短いて16bit
でも悪い店舗全で長持ちするんですね。
所属していません StackOverflow