我正在处理从CCS转换浮点数,它不符合IEEE标准(而不是符号位,指数,尾数,它们使用指数,符号位,Mantissa);我遇到了一些使用>>>
运算符的奇怪行为。正确的逻辑/无符号移位插入1而不是0符号位
给出
byte byte1=(byte)0x8A; //10001010
byte byte2=(byte)(byte1>>>1); //11000101
由于>>>
指定它将插入0
,为什么我得到一个1
?
我可以对此进行编码,只需手动翻转一下,但我不想发现它是特定于平台的。
在数字前加'0x'告诉JVM它是一个十六进制值(在这个例子中是0x8A),比Byte.decode简单:)编辑:事实上,Byte.decode不起作用有... –
@亚历山大科尔曼真实,并且很好。在这种情况下,我实际上并没有这样做,只是将它用于示例的目的。我收到的REAL'Byte'已经有'8A'了。谢谢。 – Sheriff
你必须投到字节(这是一个int);)但是好的 –