java问题byte a=1,b=1;byte c=a+b;为什么错
在java中,对char, byte和short类型的字符串进行数学算法操作,比如+,-,>>位移操作,都会引发 自动类型提升,结果将是int类型,a+b的结果是int, 要将int的值赋给byte就必须进行类型强制转换。以下这句,是从think in java 3rd中摘出来的,希望对你有帮助。In char, byte, and short, you can ...
JAVA为什么byte b=a+1会报错
byte a = 1;byte b = a+1;∥+会自动提升类型,a被提升为int,a+1是个表达式,是不确定的,所以=不会自动转换类型,需要,改为byte b = (byte)(a+1)———byte a = 1;a +=2;∥+把a被提升为int类型,2取自常量池int,1+2得3,常量+常量得常量,常量在+=(=)后面,...
关于java中byte a=1;的问题
可以这么说byte是int的子集,byte表示范围是-128-127;在这个范围内可以用整形常量(注意一定是整形常量不是整形变量)复制给byte类型的,这样做的目的就是为了节约更多的资源。
字节类型 byte x=1; byte y=2; byte z=x+y; 为什么JAVA显示错误?3应该...
所以x + y是int + int-->结果是int 需要强制转换为byte byte z = (byte) ( x +y);
java 数据类型转换的问题 byte a = 100; int b = 98; byte c = (byte...
byte类型使用1字节存储,表示范围-128~127,int使用4字节存储,当byte+int时会将结果类型转为int,因为int表示范围大于byte,不影响精度,所以结果为197,但是当(byte)(a+b)时,是将计算结果int转为byte,存储空间也有4字节变为1字节,即是保留8个bit,把他们全部转换成2进制=11000110(198刚好8位),此时...
Java基础 byte a=3; byte b=4; byte c=a+b; 第3行为什么非得强制类型...
3 4 这些数字都是int型的 当然需要强制转换类型了 同样道理的还有 1.1 这个就是double 像这样 float a=1.1 这样写也会报错
在Java中,byte类型数据在运算之前要转换成int类型数据。
第四行就开始有问题了:a,b都是byte型,他们相加会先自动转换为int然后相加,当然相加的结果也是int型的,但是你要将一个int型的数字赋给一个byte型的c显然是要强制转换的,因此Java会报编译错误,第五行是同样的道理。第六行有点特殊了,请注意,64+1编译器会自动当做65来处理,这句和c=65效果...
Java创建byte型变量需要在数值的后面加b吗?为什么?
为了跟int做区分。byte在java中是字节表示的。。b表示bit。
在Java中,byte b1=0;byte b2=127;short s1=b1+b2;为什么会报错呢
1,隐性转换一般都是放宽转换(如byte到int,int到long等,都是小的赋给大的。)但是却有一个例外就是,在赋值转换中,隐性转换也包含了缩窄基本转换。就是从int到byte,char,short的转换:比如:byte b=1;\/\/合法 byte b=128; \/\/非法 char和short都是同理的。右边必须为int型字面常量,而且值...
java中数据类型 byte b1 =1; byte b2 =2; byte b3 =b1+b2; 结果怎么...
类型转换错了,虽然b1,b2定义为了byte类型,但是b3运算的时候,b1+b2调用的是1+2,运算结果的类型为整数型数据的默认类型,为int ,而定义的b3为byte,出现了两种数据类型不一。精度高的转精度低的,会发生丢失精度,改成byte b3 =byte(b1+b2);就可以了,将结果类型进行强制转换 ...