为什么 24位 = 3 Byte?

* 将int转为低字节在前,高字节在后的byte数组
    1. 两个bit(1或0)进行与运算时,如果两者都为1,结果为1,否则为0,
    2. 当一个int和 0xff进行与运算时,即表示提取这个int的最低八位
  • >>8表示右移8位,如果该数为正,则高位补0,若为负数,则高位补1;

20的二进制为 ,右移2位后为 ,则结果就为 res = 5; -20的二进制为其正数的补码加1,即 , 不管正负,都是右移后高位补0; -20的二进制为 ,右移2位,为111010 ,此时高位补0,即
  • 再特别说明一点,上面的转换方法是采用低字节在前的方式,一开始接触的时候看着各种协议文档写着“低字节在前”,根本不知道是什么意思。
    这里解释一下低字节在前的意思,打个比方,咱们不是说int有4个字节吗? 那转成byte数组就是byte[4]对吧?
    byte[4]下标从0开始到3,0为前面,3为后面。
    int的4个字节,最右边的是最低字节,最左边的是最高字节。
    那么低字节在前的意思就是最右边的字节存在byte[0], 最左边的字节存储在byte[3]
* 低字节在前的方式获取int值

上面的代码中,为什么需要对每个字节进行 & 0xff运算呢? 不懂的同学可以参考下面的链接学习一下。

* 将short转为低字节在前,高字节在后的byte数组

注意:要先把每个字节转成long类型而不是int类型哦,不然后面左移32位以上,会超出int的存储范围导致数据错误。

  • 1、与运算符的理解(&): 参加运算的两个数据,按二进位进行“与”运算。如果两个相应的二进位都为1,则该位的结果值...

  • 8086汇编 本笔记是笔者观看小甲鱼老师(鱼C论坛)《零基础入门学习汇编语言》系列视频的笔记,在此感谢他和像他一样...

  • .1基础语言要素 1)标识符:给类、方法、变量起的名字 A.必须以字母或下划线或$符号开始,其余字符可以是字...

  • 1 关键字 1.1 关键字的概述 Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或...

  • 加入写作班,我在简书上写了几篇短文,除了第一篇作为作业发布在群里,其他的设置为私密--那是一些我还没准备好面对的故...

  • 王小波 “一辈子很长,要跟有趣的人在一起”。 男人都喜欢漂亮的女人,然而会和有趣的女人共度一生。 身边不少男性友人...

  • 一 儿歌游戏:无 二 听力材料:0b 三 分级绘本:牛津传统-5本 四 小书挂图:海尼曼6本指读,cvc混拼 五 ...

  • 电视里放着薛之谦的演员,窗外不时传来鞭炮声,还有两天就过年了,这算是预热吗? 忽然在想年是什么?过年到底过什么?它...

我要回帖

更多关于 图片24位是什么 的文章

 

随机推荐