如何计算任何具有超出范围值的基元的值



示例

byte x;
x=(byte)2355;
System.out.println(x);

那么,我如何计算x中的值;

2355文字值被解释为int,在Java中由以下32位表示:

00000000000000000000100100110011

一个byte只有8位,所以你失去了领先的24位:

00110011

转换回十进制后,您将得到一个值51


您可以在这里找到各种原始数据类型的位大小。还要记住,在处理签名基元时,需要考虑2的补码。

byte数据类型的范围是-128到127(包括-128和-127(。因此,如果要处理该范围之外的数字,则可以尝试将数据类型强制转换为shortintlong

最新更新