質問

どを製造しているのでし16ビット符号無し整数および64ビット符号なし整数値をJava?この質問には関係の実施を基本にしてください。私の位置を変更する。

他にも関連するビットの仕様この問題に関連して

  • 最も重要なビットを必ず0になります。
  • けネットワークバイト順です。

アプリケーションのコンテキスト:のいずれも形式)を表す長さのデータ送信されます。の長さは大きます。私はこれらの長さを長くするメッセージとして送信されます。

だから: long length = getLength();

そして変換する必要があるので長可変"長さ"のいずれかに記のように大きます。にんなっく .getBytes() 時を送りたいの長さです。受取人として解釈します。

役に立ちましたか?

解決

場合に最も重要なビットはゼロに、その数値が同じかどうかではないかといわれていた符号なし(その二の補数表現).そのためのインスタンスは、16ビット整数のMSBがゼロの数値から 032767 イルが含まれます。

と仮定すると書いている 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

でも悪い店舗全で長持ちするんですね。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top