JavaでUnsign形式でバイトを印刷する方法
-
27-10-2019 - |
質問
タイプの変数を印刷する必要があります byte
署名のない形式。それ、どうやったら出来るの?
解決
署名されたintから始めて、絶対値が必要だと言っていますか?あなたはこのようなことをすることができます:
byte b = Byte.parseByte("-9");
int i = (int) b;
System.out.println(Math.abs(i));
他のヒント
私はあなたのためにその方法を書いたばかりです。
public static String printUnsignedByte(byte b){
StringBuilder sb = new StringBuilder();
while(b>0){
sb.insert(0, b%2==0?0:1);
b>>=1;
}
for(int i = 8-sb.length(); i>0; i--){
sb.insert(0,0);
}
return sb.toString();
}
編集:ただし、2の補完形式の形式をカバーしていません。あなたもそれが必要ですか? edit2:チェックアウト:
Integer.toBinaryString(2)
ネガティブ値のために2ESのcompめいをカバーしますが、出力が長すぎると、4ビットがあります。サブストリングでこれを短くするだけで、完了です。
編集3:私の最終的な解決策。
public static String printUnsignedByte(byte b){
if(b>0){
StringBuilder ret = new StringBuilder(Integer.toBinaryString(b));
for(int i = 8-ret.length(); i>0; i--){
ret.insert(0,0);
}
return ret.toString();
}else{
return Integer.toBinaryString(b).substring(24);
}
}
所属していません StackOverflow