byte b=(byte)129;//变量b的取值为-127

如何把该代码成功转换

byte的取值是-128-127
129是不可以转换成byte的。不然会以补码形式来转
你只能 这样int b=129
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-01
一个byte放不下的

一个byte是放不下129的
public byte[] int2bytes(int d){
byte[] buf = new byte[4];
buf[0] = (byte) (0xff & 129);
buf[1] = (byte) ((0xff00 & 129) >> 8);
buf[2] = (byte) ((0xff0000 & 129) >> 16);
buf[3] = (byte) ((0xff000000 & 129) >> 24);
return buf;
}本回答被提问者采纳

byte b=(byte)129;\/\/变量b的取值为-127
byte的取值是-128-127 129是不可以转换成byte的。不然会以补码形式来转 你只能 这样int b=129

byte a = (byte) 129 如果运上述语句,为什么输出的b的值为-127
所以,129就是-127

java的一个程序如下,输出结果为什么为—127呢?为什么是负数呢?怎么算出...
byte范围 -128~127之间。当数字为127的时候,不溢出,相当于最大的127。128的时候,溢出,相当于最小的负数,也就是-128。所以,129就是-127

JAVA数值越界在内存中是怎么处理的?比如:byte b = 129 ,怎么转?
这个是涉及到内存溢出,直接写byte b = 129肯定是报错的,如果强转就不一样了结果是-127,因为byte的范围在Java中的定义就是1个字节,即表示数在 -127~128,一共是256个数字,内存溢出就是简单来说就像一个轮子,这个byte型的轮子就是把这256个数字连成一个圈,128后面的数字就是-127,也就是1...

byte类型的字段怎么设置值
byte类型的变量赋值的范围在-128到127之间就可以,例如:byte b = 127; \/\/内存中是0111 1111 java中的基本数据类型,比如byte(1字节8位) ,short(2字节16位),int(4字节32位),float(4字节32位),long(8字节64位),double(8字节64位)都是带符号的,就是最高位标志着正数(为0)...

java中为什么byte的取值范围为-128~127
java中的byte是有符号整形,1字节,8位,最高位是符号位,只有7位用来表示数值 最大值:01111111b=127 即2的7次方减去1;最小值: 10000000b即2的7次前面加个负符号:-128

byte a=(byte)128; byte b=(byte)(-129); a,b得到的值分别为
a和b得值分别为-128和127.这个是编码方式决定的,Java中正数用源码表示,负数用补码表示,第一位是符号位。所以对于128和-129,他们的编码分别是:0000 0000 0000 0000 0000 0000 1000 0000 1111 1111 1111 1111 1111 1111 0111 1111。对于a来说,1000 0000是负数(第一位为1),它的绝对值是...

计算机:byte的取值范围为什么是-128~127呢?-0为什么就能表示成-128就...
因为计算机使用二进制数制1byte即8位二进制数,而第一位用于代表符号(正数或负数),所以1byte就可以写成11111111-011111111(没有-0)。

为什么byte的取值范围是-128,127.用逻辑推理来解释。也就是为什么1000000...
127,用逻辑推理来解释。也就是为什么100000000是-128就可以了。用逻辑推理来解释,如下:byte,是 8 位 2 进制,能构成 2^8 = 256 组补码。用其中的一半 (128 个) 表示负数。其余的一半,表示零和正数。那么,负数,就有 128 个。这 128 个负数,都是那些捏?你自己推理一下吧。

byte a=(byte)128; byte b=(byte)(-129); a,b得到的值分别为
byte a=(byte)128;因为整型数128十六进制为0080H,强制转换后,高八位去掉结果将变为:80H,所以为-128 byte b=(byte)(-129);因为整型数-129十六进制为FF7FH,强制转换后,高八位去掉,结果为:7FH,所以为127

相似回答