Java 处理原始字节时,0x1234ABCD的含义是什么

Java 处理原始字节时,0x1234ABCD的含义是什么,java,bits,Java,Bits,在Java中处理字节操作时,我有时看到人们用0x1234ABCD屏蔽了0xFFFFFFFF长值(32位值) 我知道Java不支持无符号整数值(字符除外),但我想了解这些数字0x1234ABCD和0xABCD1234的含义(如果有的话),以及在Java中处理原始字节时使用它们的意义是什么?每次计算某个值时,您都在处理数字。 10美元,50%,20摄氏度。 “nexadezimal”符号只是书写这些数字的另一种方式。 0xA美元,0x32%,0x14摄氏度。 他们的意思取决于你在做什么。 计算你的钱

在Java中处理字节操作时,我有时看到人们用0x1234ABCD屏蔽了0xFFFFFFFF长值(32位值)


我知道Java不支持无符号整数值(字符除外),但我想了解这些数字0x1234ABCD和0xABCD1234的含义(如果有的话),以及在Java中处理原始字节时使用它们的意义是什么?

每次计算某个值时,您都在处理数字。
10美元,50%,20摄氏度。
“nexadezimal”符号只是书写这些数字的另一种方式。
0xA美元,0x32%,0x14摄氏度。
他们的意思取决于你在做什么。
计算你的钱,温度或其他东西

在处理“原始字节”内容时,它通常更方便
写十六进制。数字而不是普通的十进制数字,
因为在这种情况下,它们实际上可以提高可读性。

比如0x8000000而不是2147483648

不知道你在问什么,但无论如何

对于Java,整数值(无论是
byte
short
char
int
还是
long
)都表示为大端,即两个带符号的补码值。您在这里看到的是另一种方式,而不是十进制方式来表示这些常量

例如,28作为
int
在内部表示为:

binary: 0000 0000 0000 0000 0000 0000 0001 1100
hex:       0    0    0    0    0    0    1    c
= 0x1c
这意味着这两者是等价的:

int i = 28;
int i = 0x1c;
在使用位掩码时,将整数常量表示为十六进制是很有用的,因为只要有一点习惯,就可以将十六进制“转换”为二进制。例如,当您想要一个包含另一个整数的最后4位的整数时,如果您写入:

i & 0xf
而不是:

i & 15

0xFFFFFF
是-1(或
Integer.MIN\u VALUE
)。

您要求我们解释您没有显示的代码。这些只是用十六进制表示的整数常量。。。这其中有什么神秘之处?我说的是“0x1234ABCD”的具体值,我想知道它是什么意思!我见过它多次出现,这取决于代码;它可能是一些神奇的价值,就像
0xdeadbeef
。如果没有看到代码,没有人会知道。@fge我第一次看到0xdeadbeef是在运行AIX的IBM RS-6000工作站上。声称这是一个非法的浮点值。AIX将填充应用程序空间中的单元化位置,以帮助程序员查找引用未初始化内存的程序错误。在内存转储中也很容易找到它。就我个人而言,我喜欢使用一个“Signaling NaN”值,当用于计算时,该值应该会生成一个中断或异常。为了确保我没有误解,这将创建一个新的数字,最后四位为1?不,这将创建一个最后四位的int<代码>0xf为
0000。。。。1111
。它将“提取”最后的
。。。。xxxx
来自其他号码<例如,code>28&0xf将返回12(0xc)。这是一个按位and运算。在按位and中,对于任何位
x
x&1
x
x&0
0