我熟悉内存中整数的二进制表示 - 即如何表示正数,负数,前导位用于符号等等。我不知道像0x000f
这样的表示意味着什么,我应该如何解释它。有人可以提供一些很好的教程或者至少告诉我要google什么,因为当我谷歌“二进制表示”时,我没有找到这个数字0x000f
的含义的任何解释?
答案 0 :(得分:3)
您提供的示例0x000F
实际上并不是二进制;它是十六进制的(基数为16)。您可以知道,因为十六进制数字通常以0x
开头,而二进制文件通常以0b
开头(如果它始终以任何内容开头)。
在十六进制基本系统中,每个数字可以具有以下值之一:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
A
代表10,B
代表11,C
代表12,D
代表13,E
代表14,F
代表15。
因此,0x000F
将等于0 * 16^3 + 0 * 16^2 + 0 * 16^1 + 15 * 16^0 = 15
以下是查看更多信息的资源:https://en.wikipedia.org/wiki/Hexadecimal
答案 1 :(得分:0)
来自Hexadecimal:
定义:
十六进制是指一个基数为16的编号系统。这意味着它使用所有数字0,1,2,3,4,5,6,7,8,9以及字母A,B ,C,D,E,F用于数字的每个数字。类似于意大利语这样的语言代表英语单词' number' as' numero',十六进制表示122的否定数字为7A。它只是另一个代表相同价值的系统。
要显示十六进制编号系统的进度,请查看下面的十六进制值,因为它们是从否定数字转换而来的。请注意,一旦达到10,十六进制系统就会使用字母:
Denary=Hexadecimal;0=0;1=1;2=2;3=3;4=4;5=5;6=6;7=7;8=8;9=9;10=A;11=B;12=C;13=D;14=E;15=F;16=10; and so on.
十六进制系统是一种表示位的紧凑方式。每个十六进制数字可以表示四个比特,即十六进制数字可以表示16个值(0-15),这与四个比特(1111)完全相同。由于这种完美的转换和现代计算机围绕字节(8位)设计,十六进制是一种广泛使用的方法来表示二进制数。
示例:
在java中,要将十六进制数表示为文字,请使用前导零后跟x。
例如,以下将为十六进制数7A返回122的值:int hexNumber = 0x7A;
System.out.println(hexNumber);
答案 2 :(得分:0)
java中有不同的前缀来分配整数值。 0
表示二进制的十八进制0b
和十六进制的0x
。
int binary = 0b10;
int octa = 010;
int hexa = 0x10;
System.out.println(binary);
System.out.println(octa);
System.out.println(hexa);
输出:
2
8
16
Hexdezimal是16,所以你需要16个不同的符号。从0到9,从A到F. A等于10 in dezyimal,依此类推。如果你需要在java中没有文字表示的任何其他数字系统中分配一个整数,你可以使用Integer.parse("1011",2)
作为数字系统的基础作为secound参数。