相关疑难解决方法(0)

为什么字节b =(字节)0xFF等于整数-1?

为什么byte b = (byte) 0xFF等于integer -1

例如:

int value = byte b = (byte) 0xFF;
System.out.println(value);
Run Code Online (Sandbox Code Playgroud)

它会打印-1吗?

java bit twos-complement

21
推荐指数
4
解决办法
4万
查看次数

在Java中从short转换为byte,反之亦然

我正在尝试将短路转换为2个字节...然后从这2个字节尝试获得相同的短路值.为此,我写了这段代码:


        short oldshort = 700;

        byte 333= (byte) (oldshort);
        byte byte2= (byte) ((oldshort >> 8) & 0xff);

        short newshort = (short) ((byte2 << 8) + byte1);

            System.out.println(oldshort);
        System.out.println(newshort);
Run Code Online (Sandbox Code Playgroud)

对于700(oldshort)的值,newhosrt是444.经过一些测试后,它看起来像这样的代码只适用于某些值.就像...如果oldshort = 50,那么它将正常工作..但如果它是-200,或更大的值超过127(我认为)它不起作用.我想有签名字节,二进制补码等问题...但我无法弄清楚如何解决它.

任何的想法??在java中以任何本地方式执行此操作?提前致谢!

java byte short typeconverter

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×2

bit ×1

byte ×1

short ×1

twos-complement ×1

typeconverter ×1