Java:转16进制时常见的【byte[i] & 0xFF】是什么意思呢?

for (int i = 0; i < b.length; i++) {

int v = b[i] & 0xFF;
Integer.toHexString(v);
}

byte[i]是8位二进制,0xFF也是8位二进制,怎么与运算之后就变成32位赋给int了?

int v ; 这里不论你赋值给v什么值,v都会是四个字节的整数
所以,调用Integer.toHexString(v); 出来的还是32位的字符串

b[i] & 0xFF只是保证了v的前三个字节是0,只有最后一个字节有数追问

您好,但是0xFF不就是1111 1111吗?这不是仅有一个字节吗?难道Java中16进制与int是等价的,都默认占4个字节?

追答

0xFF是个整数常数,只是用16进制形式表示出来了,

追问

前辈您的意思是他的值其实是32位的,只不过后8位都是1?

追答

是的

温馨提示:内容为网友见解,仅供参考
无其他回答

Java:转16进制时常见的【byte[i] & 0xFF】是什么意思呢?
b[i] & 0xFF只是保证了v的前三个字节是0,只有最后一个字节有数

java 0xff是什么意思?
0xff是Java中的一个十六进制数常量,它表示255这个数值。在计算机系统中,直接使用二进制数字会很难阅读和理解,因此人们广泛采用了十六进制表示法来方便数据的阅读和运算。对于Java程序员而言,掌握十六进制的使用方法非常重要。比如在编写网络协议、嵌入式设备开发和储存器编程等领域,常常需要用到十六进制数...

java 字节 & 0xFF 什么意思, <=0xF又是什么意思
问题3:0xff换成2进制就是8个1,这样与的话,其实就是取到了字符的低8位。 oxf就是15, 小于15的数会转换成一个16进制数,你的代码里希望是固定的两个16进制数,所以当只会产生一个时要加个0

java中value += ((buffer[1] & 0xFF) << 8);是什么意思?
0xFF 是计算机十六进制的表示: 0x就是代表十六进制,A B C D E F 分别代表10 11 12 13 14 15 F就是15 一个F 代表4位二进制:可以看做 是 8 4 2 1。0xFF的二进制表示就是:1111 1111。 高24位补0:0000 0000 0000 0000 0000 0000 1111 1111;-12的补码与0xFF 进...

java 0xff是什么意思?
Java中的0xff是什么意思?在Java中,0xff通常用来表示无符号的8位整数,即255。在二进制中,0xff就是11111111。由于Java中的byte类型为有符号型,其范围为-128到127,如果对其中一个超过127的数进行操作,则会进行自动的截断。因此,为了避免错误发生,我们在操作byte类型时通常要将其转换为无符号的8...

0xFF是什么意思
16进制是计算机中数据的一种表示方法;十六进制的0xFF就是二进制的11111111,换算成十进制就是255;十进制表示法不一样,是逢16进1,它由0-9,A-F组成,字母不区分大小写,例如10用16进制表示就是A;P2=0xFF,就是将P2.0~P2.7全部设为1,也就是P2=11111111,当然就不是P2=0x01;...

(byte)((i >> 24) & 0xFF); 怎么理解啊
i向右移动24位,然后和0xFF也就是(11111111)进行与运算 内存中生成一个与 i 同类型的值 然后把这个值强制转换成byte型 (应该再赋值给其他一个byte型变量)

java的io读文件中,什么叫高低八位,什么叫高24位,求指点
0xff是一个16进制的表示,“ff”是一个16进制数化成二进制数就是(11111111),“&”是按位与符号,当一个32位二进制数与一个8位二进制数11111111按位与时,这个32位二进制数的高24位都会变成0,低8位会保持原来的数值(因为高24位中的每一位都是与0相与,当然都是0了,而低8位都是与1相与...

单片机:0xff是什么意思
0X表示十六进制的意思;FF是表两位的十六进制的数;ff在单片机中默认为11111111,在单片机中表示,将八位都是高电平。一、单片机 单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I\/O口和中断系统、定时器\/...

java里面 ra[i] = (data[i] >> 16) & 0xff ; 是什么意思?
0xff是255,也就是11111111 假如你这个数字占了17位二进制位,那么整个左移动后只会剩下你的最后1位了,把你前面的16位全部变成0了。。。也就是将int类型data[i]左移16位,可以理解为乘以2的16次方后对应的二进制向左移动16位,然后和0xff进行与运算.整个式子的目的就是把对应的二进制的前16位...

相似回答