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

你们照课程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
提交
取消
二进制基础
  • 参与学习       99871    人
  • 解答问题       210    个

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

进入课程

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信