java有趣的小题,无分看题 int a=5;"isO< System.out.println(a<<33);结果是多少?why? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 结果是10原因:<<是左移运算符。在涉及运算符的时候,就是将原来的数字对应的补码往左边移动一定的位数比如说b=3对应的二进制补码是11, b<<2, 往左边移动两位变为1100。对应的十进制是12b=5,补码是101,b<<1,变为1010,十进制是10又因为计算机存数的最大的位数是32位(不知道是这个原因,还是因为int类型占4个字节,即32位),因此不可能向左边无限移动,计算机对于超出范围的移动是这样处理的:循环。即你向移动n位,计算机实际移动n%32.所以,你这个题目中的33变为了1 5的补码向左边移动1位即是10。 a 是 int 类型的,我们知道int是4个字节,32位,a<<32 与a是一样的,所以a<<33相当于a<<1,a<<相当于a*2,所以结果是10。而且int的第三十二位是符号位,如果这一位是1,表示的是负数。long的规律也是一样的。 java使用32位来存储intlong 64 位貌似 如果是System.out.println(a<<-3);呢更多详情在这里http://hi.baidu.com/freish/blog/item/7dc95c0f53028d206159f3ef.html 谁可以帮我讲讲适配器模式,谢谢! 求各位帮忙看下程序,谢谢! LVS是什么,某公司宣讲会上说谁知道谁就可以进他们公司。 java调用另一个软件的菜单命令。 高手请进 关于设计模式的问题 找朋友:潍坊的JAVA朋友,请留言!!! IO流,求解答 java 中不同方法间的数据调用问题 求大神解答!! 求助,applet在浏览器里面的显示问题 新人请教多线程问题。。。 关于动态添加button的问题 多线程!!!
5的补码向左边移动1位即是10。
而且int的第三十二位是符号位,如果这一位是1,表示的是负数。
long的规律也是一样的。
long 64 位貌似