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
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),它的绝对值是10...
byte b1=(byte)128 结果是什么
-128,byte只有八位,只能表示-128--127 计算机中负数的存储方式是补码。对负数的绝对值的二进制值取反,再加一,即为负数的二进制码。如:-1的绝对值1的二进制码为00000001,取反得到11111110,再加一为11111111。-128的绝对值128的二进制码为10000000,取反得到01111111,再加一为10000000,正好是Byte...
整型b= -1,b>>>1值为多少?为什么?当b为byte型呢?
int b=-1;计算机中的补码是:11111111111111111111111111111111 右边去掉一个1,前面补上一个0.就是0。。。1111;计算机把正负数都是用补码表示,第一位是符号位。也是就31个1最大表示2的31次方减1==2147483647~~byte?只不过少几个位数罢了。再说它会自动转型成int。
byte amount = 128;为什么是错误的byte型变量声明?
byte为有符号类型,长度为1字节,可以表示的数的范围是-128~127,超出这个范围需用强制类型转换(会发生截断) 。下面是一个例子:public class Test { public static void main (String[] args){ byte a=-128;byte b=(byte)-129;byte c=127;byte d=(byte)128;System.out.println(a);System....
int a=(byte)128;为什么a的值是-128?
因为byte最大是127,根据计算机计算原理,如果超出,他会返回到一个最小的值上去,即:-128 这个就好像是一个数字环境,数字环的结构式这样的:-128,-127,-126,...0,1,2,3,...126,127,-128,-127,-126 大致意思就是这样 楼主采纳我的答案吧..哈哈哈 ...
int x=(byte)128;输出变量x的值是多少?为什么?
是-128,因为你是从小类型(byte)向大类型(int)转型,值不变的,但是int型的最高位是1吧,所以是负的
byte b=(byte)129;\/\/变量b的取值为-127
byte的取值是-128-127 129是不可以转换成byte的。不然会以补码形式来转 你只能 这样int b=129
int x=(byte)128;输出变量x的值是多少?为什么?
输出128,因为本身int型的取值范围比byte类型大,所以所以类型能够自动转换,也就是说int 类型能够容纳128这个数