为了账号安全,请及时绑定邮箱和手机立即绑定

你们照课程byte能转换成long?

老师讲的还不错,最后那个long型写的有问题,实际操作byte数组转换long会出错。。因为在转换的途中,向左位移的时候实际还是按int去位移的,int是32位,所以在位移时应该提前将之转换为64位的long,然后左移i*8位就可以了。

long result=0L;for(int i=0;i<arr.length;i++){    result+=(long) (((long)(arr[i]&0xff))<<(i*8));
}


正在回答

1 回答

转化为数组时已经定义的是8位的数组,应该是没问题的。问题在result定义的是整形,而赋值语句是长整形,这个地方会报错

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
二进制基础
  • 参与学习       99828    人
  • 解答问题       211    个

二进制是计算机唯一能识别的语言,是学习计算机技术必备的知识

进入课程

你们照课程byte能转换成long?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号