Dize ile temsil edilen bit kümesini dönüştürmem gerekiyor. Dizgim 8'in bir katıdır, bu yüzden 8'i bölebilir ve 8 bitlik alt dizeleri alabilirim. Sonra bu alt dizeleri bayt olarak çevirip HEX'e yazdırmam gerekiyor. Örneğin:Bit dizgisi bayttır. Değer aralık dışı - dönüştürme hatası java
String seq = "0100000010000110";
seq çok daha uzun, ama bu konu değil. Aşağıda, seq numaralı iki alt dizgiyi görebilirsiniz. Ve onlardan biriyle sorunum var, neden? hesap makinesi, bir hata var neden
String s_ok = "01000000"; //this value is OK to convert
String s_error = "10000110"; //this is not OK to convert but in HEX it is 86 in DEC 134
byte nByte = Byte.parseByte(s_ok, 2);
System.out.println(nByte);
try {
byte bByte = Byte.parseByte(s_error, 2);
System.out.println(bByte);
} catch (Exception e) {
System.out.println(e); //Value out of range. Value:"10000110" Radix:2
}
int in=Integer.parseInt(s_error, 2);
System.out.println("s_error set of bits in DEC - "+in + " and now in HEX - "+Integer.toHexString((byte)in)); //s_error set of bits in DEC - 134 and now in HEX - ffffff86
Ben dönüştürmek için bir sorun değildir anlayamıyorum. Yani, Tamsayı'u denedim ve yerine ffffff86 var.
Lütfen yardım edin: Neden? ve sorunun nasıl önleneceği.
System.out.println("s_error set of bits in DEC - "+in + " and now in HEX - "+Integer.toHexString((byte)in & 0xFF));
0XFF eklendi: