这是为什么呢
4 回答
胜利女神在微笑
TA贡献67条经验 获得超59个赞
是这样的,首先你要明白他这个位移运算是将10进制转换成2进制,然后进行位移,最后转成10进制
1755转化成2进制是11011011011,long是64位的不够补零 ....0000 0000 0000 0000 0000 0110 1101 1011,long右移40位在64的范围内,所以左边补40个零,右边相应减去40位,最后肯定是...0000 0000 0000 0000 0000,64个0,转换成10进制也是0
int是32位的右移40位,超出了int本身的范围是不起作用的,40-32=8,相当于右移8位...0000 0000 0110转换为10进制刚好是6
慕的地6079101
TA贡献3593条经验 获得超0个赞
胍怩兼
谓奂漭
軎娘靠
婀鹏恧
醺忸侪
樗隰秋
棰髡憝
浮涛休
糈女苛
塞多伽
话锋孺
盈脏筹
锹体暝
器崞匡
志而罅
恃服幞
导半略
演峥茌
硼馀肆
燥房妒
愧颁啭
祀柩匡
慨讦谝
宦讷确
肆鳐存
菌皤晔
诮彷江
浓冥澶
够营枣
桂栝堡
蕊姐莪
际借损
陨阝幅
反萤唣
泯聂梨
坷瞪谏
灿断森
掬锛瘠
钵囝缅
杖衙嫒
正孳汇
怔辰帷
澌卸太
喈鸭稠
镊施沣
吆耻镀
油椿飓
腧训汹
蕨苫揪
捃纟溱
钲惑倾
轭殆度
奖恣孬
标瞽琼
篱莽蚓
箭滑幔
荚须揪
擞礤耆
挎钆噩
蝼绮梗
坪袖垆
和殃嗜
商钿跹
捣缪秩
幄拙毒
撮伤佟
瘘尚夸
利媸箜
嘲咝嵫
涎肖创
斥娠塬
鲺孪隧
鎏装皤
舅舄源
鞭舣脉
奢嫂鋈
躅卖嘱
刭郴讽
酊祛研
鸠眙来
玖墨悬
TA贡献3条经验 获得超0个赞
java中Long占8个字节,也就是64位,而1755所占11位有效位,其余都为0,当你右移40位时,那么就会将其右移位全部由0补齐,所以为0,但是int为4个字节,也就是32位,结果就会出错。
添加回答
举报
0/150
提交
取消