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

二进制基础

难度入门
时长50分
学习人数
综合评分9.03
614人评价 查看评价
9.4 内容实用
8.9 简洁易懂
8.8 逻辑清晰
不错的不错的位运算
010101010101010101010101010101还不错
public static byte[] int2Byte(int x){

byte[] bs=new byte[4];

bs[0]=(byte) ((int)(x>>0*8)&0xff);

bs[1]=(byte) (((int)x>>1*8)&0xff);

bs[2]=(byte) (((int)x>>2*8)&0xff);

bs[3]=(byte) (((int)x>>3*8)&0xff);

return bs;

}
不强制转为int也可以运行

已采纳回答 / Hinstro
A=A^B;B=A^B=(A^B)^B=A^(B^B)=A^0=A;A=A^B=(A^B)^A=(A^A)^B=0^B=B;∵一个数“异或”本身时等于0

已采纳回答 / 诸葛云飞
在本节中11001111是存放在字节byte中的,字节是8位,java中最高位表示符号位,所以byte的取值范围是-2^7~2^7-1,即1000 0000~0111 1111,十进制是-128~127.11001111(看作无符号十进制是207),这是补码,原码为00110001(看作无符号十进制是49),如果你把这个想象为无符号的(十进制也要想象为无符号,即-49为49),那相加为1 0000 0000即2^8=256,即所有的负值的byte的补码和源码想象为无符号的话之和为256
还行,自己练习一下还是可以理解的,就是运用起来不一定能运用
首先谢谢老师的付出。不过,取反运算不是把0变1,1变0怎么简单吧。百度很久,看了不少资料才弄懂。
讲的可怕,新人请绕行
//转化byte[]为long
public static long bytes2Long(byte[] arr) {
int result = 0;
for (int i =0;i <arr.length;i++){
result += (long) ((arr[i] & 0xff) << i * 8);
}
return result;
}
老师没有把方法中的"int" 改成"long".只有我一个人发现了么.同意的点赞!!
讲得很好啊。
1.5倍速听起来刚刚好
听的我真的是醉了 听的我都不想听了
虽然是本来就会的内容,但是这一遍听的真难受啊
无力吐槽 真的讲的 可怕、。、、
课程须知
小伙伴们注意啦!~本门课程前三章的内容可以零基础学习。第四、五章的内容在学习前需要了解Java的基础知识。
老师告诉你能学到什么?
通过课程的学习,您可以了解二进制的由来,掌握二进制和其他进制之间进行进制转换的方法,掌握如何进行位运算,为所有计算机课程的学习提供基础。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消