shortcuts b = 169756631...

java问题麻烦详细解释一下(我知道是超出了表示范围)byte a=(byte)128;byte b=(byte)(-129);为什么a和b的值分别是-128,127还有,short b=130;a=(byte)b;a的值为什么是-126
128是整数,二进制表示为 (注32位整数)转换为byte类型阶段为 (8位)而最高位为1 ,表示负数,而后七位0000000恰好是-128的补码补码计算方式:+128是 取反
再加一就是 了,也就是 代表的是byte类型的-128其他是类似的自己转换一下.
为您推荐:
扫描下载二维码b= (a&&4)|(a&&4); 什么意思?_百度知道
b= (a&&4)|(a&&4); 什么意思?
b= (a&&ltunsigned short a=0*A0A0;&
提问者采纳
是16进制数;&4 值为 0X0A00;a&lt,结果是 0X0A0Ab=0X0A0A;&&4); 是 a 右移 4 位和 a 左移 4 位的按位或;&4)|(a&lt:unsigned short a=0XA0A0;4 值为 0X0A0Aunsigned short a=0*A0A0;改为;b= (a&gt。a&gt
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁java中a+=b与a=a+b有什么区别么?
[问题点数:40分]
java中a+=b与a=a+b有什么区别么?
[问题点数:40分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2011年9月 Java大版内专家分月排行榜第三
2012年10月 Java大版内专家分月排行榜第三2012年6月 Java大版内专家分月排行榜第三
2012年7月 Java大版内专家分月排行榜第三2011年11月 Java大版内专家分月排行榜第三2007年12月 Java大版内专家分月排行榜第三2007年10月 Java大版内专家分月排行榜第三
2008年10月 Java大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。java的类型转换问题。int a = 123456;short b = (short)a;System.out.println(b);为什么结果是-7616?_百度知道
java的类型转换问题。int a = 123456;short b = (short)a;System.out.println(b);为什么结果是-7616?
我知道这个问题是数据溢出了,只是不明白为什么结果会是-7616。
提问者采纳
看明白了吗,表示正负,1 变成 0),这个数肯定不是原来那个数了,这是相反数,截取最后 16 位:int 是 32 位:00 10 。第一位是符号位。当首位为 1(为负)时,二进制表示为,所以是 -7616。然后你转成了 short,有 32 位,把所有的位取反(0 变成 1,123456 本来是 int,0 表示正的,就是它的正数相反数。然后看你的问题,其他和 int 一样的,然后再 + 1,长度短了,这转成十进制就是 7616,1 表示负的,也就是最多能表示长度为 32 位的二进制整数,首位是 1?不明白问我,那么就是负数,short 最大 16 位这个从二进制来解释。short 是 16 位,就是 00 0000,取反加一以后是 00 0000
提问者评价
其他类似问题
为您推荐:
类型转换的相关知识
其他5条回答
给你一个计算方法!溢出之后的计算数值方式很简单因为short的最大值并不能容纳123456这个数,数据会溢出。在java中,所以溢出了,具体就不给你计算了,那么这个时候:-最大值小于123456,short占用2个字节它的取值范围是!才得到了-7616这个数
public static void main(String[] args) {
int a = 123456;
String binary=Integer.toBinaryString(a);
System.out.println(a+&的二进制位:&+binary);
//进行short强制转换的话,取后面的二个字节(后16位)
String last16bit=binary.substring(binary.length()-16);
System.out.println(a+&二进制的后16位为:&+last16bit);
/**把上面得到的16位二进制转换为short值,最高位为符号位,0代表正数,1代表负数,后15位为数值位
* 由于最高位为1,表示这个short为负数,后15位应该为补码
* (short)a为上面15位的补码,即,0000的补码为1111
short b的绝对值=Short.parseShort(&1111&,2);
//由于为负数需要附加符号位
System.out.prin...
参考资料:
还有其他问题的话,给我发百度消息
楼上的兄弟说得极是。。short不能表示那么大的数。所以就这样了。。专业术语叫数据溢出。
所以在类型的转换时一定要注意数据类型的取值范围
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁java简单运算-short类型与int类型_百度知道
java简单运算-short类型与int类型
com/zhidao/wh%3D600%2C800/sign=1b3dcec4b6a1b4e168e087/fbf2b2cce52,18行没错.com/zhidao/wh%3D450%2C600/sign=5aeb4974cabf6c81f7d03/fbf2b2cce52.hiphotos?求指导。short不是有2个字节么://g.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><img class="ikqb_img" src="http.baidu.baidu.hiphotos,为什么连2都表示不了://g。<a href="http:为什么15行会提示错误如下./zhidao/pic/item/fbf2b2cce52://g.jpg" esrc="http
提问者采纳
也就是后面的b=b+1;与&quot,int型赋给short型,也就是(b+1)是int型,结果是大类型,其中&计算;小类型&大类型&quot,如果是运行时就不会自动转了哦,前提是编译时,然而这种赋值编译器会自动将int型转成short型因为short b=1中的1其实是int型,且是运算中
提问者评价
太给力了,你的回答完美地解决了我的问题,非常感谢!
其他类似问题
为您推荐:
村卫生室的相关知识
其他1条回答
你试试这个;b = b + (short)1short b = 1!!
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 shortcuts 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信