0XFF

Posted keep going!~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了0XFF相关的知识,希望对你有一定的参考价值。

0xFF = 00000000000000000000000011111111

也就是说 0xFF 代表了一个 byte 位全为 1,-1的补码(数据)。

数值和数据是两个不同的概念。数值表示一个数的大小,而数据就是补码(因为计算机中是以补码形式存在的)。

 

byte b = -1; //表示在计算机中真实的数据值(即补码)11111111
int a = b & 0xFF;//11111111 & 11111111 =00000....11111111,而且就看成了是其补码了,编译器会以这个二进制转换成十进制输出,所以a = 255

而:

byte b=-1;
int a = b = -1 = 11111111111111111111111111111111;

前者保持了数据不变,数值从-1变成了255;

后者保持了数值不变,数据从11111111变成了1111111111111111111111111.。。。。

 

一般用于我们做小基本数据类型转大基本数据类型. 例如我们需要序列化及反序列化 int 数据

以上是关于0XFF的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Java 能够将 0xff000000 存储为 int?

byte为什么要与上0xff?

byte为什么要与上0xff?

玩玩LED点阵屏(arduino nano)

byte为什么要与上0xff(转)

cv2.waitKey(1) 中的 0xFF 是啥?