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

二进制基础

难度入门
时长50分
学习人数
综合评分9.03
614人评价 查看评价
9.4 内容实用
8.9 简洁易懂
8.8 逻辑清晰

最新回答 / Imooc_Date
byte字节16位,long64位,不转的话字节不够

最新回答 / 无言是人心
将传入进去的数字 进行小端法位运算,定义int  就是四个 字节  就是四个八位  所以数组就是定义的长度为4运算过程中,是八位八位的进行运算的。  比如00000000 00000000  10101010 01010101byte[1]  等于第一个低八位 01010101byte[2]  等于第二个第八位 10101010

最新回答 / include_ice
....將int类拆分为byte类了。因为int是32位,byte是8位所以要拆分为4个byte变量,所以用byte数组来装传进去的int参数,然后返回一个含有4个byte类的数组

已采纳回答 / Kian_
在计算机中数都是以二进制存在的,你也说了2的二进制为10,其实前面省略了,在java中int型占4个字节,32位,所以2的二进制位 0000 0000 0000 0000 0000 0000 0000 0010 老师讲的时候其实是把前面的0省略了, 这样你再左移,能力有限,只能跟你这样解释 ~.~

最新回答 / ReginaldLU
这就是编译器给你抛出了数组下标越界异常。应该是在你的main方法中,你调用某一个数组的时候,你的下标超出了你的数组长度,比如说定义一个数组byte[] bs = new byte[4],此时数组中只有bs[0]、bs[1]、bs[2]、bs[3],你却调用了bs[4]这样的。仔细看一下数组,应该就解决了

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

最赞回答 / 竟然还有叫某君的
二进制只是对于计算机来说很小的一部分,但是仍然要重视,这个是数电、模电乃至计算机组成原理、汇编语言的基础,所以还是建议题主认真看看。、以上

最赞回答 / 慕粉3909377
最高位为符号位,如果最高位为1,则代表这个数是负数,就不能用简单的乘二除二来计算啦。

最新回答 / Q盛
十进制转换成二进制 就是把某个十进制的数不断的除以2 余数放一边 最后结果从下往上看就是转换后的二进制

最新回答 / 汉江怪人
就是转化为二进制,然后通过&0xff运算获得一位的数据

最新回答 / 桥米
你的类名字是convert吗?老师的类名是convert,而且是静态方法,所以直接用类名.方法名调用方法

最新回答 / 慕少7573967
计算机能算出来,但你人按你这种方式算不出来啊,所以要用人为的方法进行计算啊

已采纳回答 / enthusiastic
可以不加int,我没加代码运行也没问题,但是与操作不能少,另外byte强制类型转换也不能少。因为id是int类型,从范围大的类型到范围小的类型需要强制类型转换。arr[0]=(byte)((id>>0*8)&0xff);

已采纳回答 / 遇见花开遇见你啊
不可以,因为要把高位置零,如果不加& 0xff,高位的数还存在
课程须知
小伙伴们注意啦!~本门课程前三章的内容可以零基础学习。第四、五章的内容在学习前需要了解Java的基础知识。
老师告诉你能学到什么?
通过课程的学习,您可以了解二进制的由来,掌握二进制和其他进制之间进行进制转换的方法,掌握如何进行位运算,为所有计算机课程的学习提供基础。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消