Binary 如何解析十六进制和二进制?
我的意思是 在程序中,如果我编写以下内容:Binary 如何解析十六进制和二进制?,binary,hex,Binary,Hex,我的意思是 在程序中,如果我编写以下内容: 1111 0xF 我是说15岁。同样,如果我这样写: 1111 0xF 我也指15岁。我不完全确定这个过程是如何通过芯片执行的,但我不确定地回忆起一些关于标记的事情,但本质上编译器会计算 2^3 + 2^2 + 2^1 + 2^0 = 15 在进行此计算之前,0xF是否会转换为“1111”,或者是否写入十六进制F表示15 Or simply, 16^0 ? -- which obviously is not 15. 我找不到任何有用的文章
1111
0xF
我是说15岁。同样,如果我这样写:
1111
0xF
我也指15岁。我不完全确定这个过程是如何通过芯片执行的,但我不确定地回忆起一些关于标记的事情,但本质上编译器会计算
2^3 + 2^2 + 2^1 + 2^0 = 15
在进行此计算之前,0xF是否会转换为“1111”,或者是否写入十六进制F表示15
Or simply, 16^0 ? -- which obviously is not 15.
我找不到任何有用的文章说明从十六进制到十进制的转换,而不是首先转换为二进制
二进制(base2)是按照我上面的方式转换的(2^n..etc)。十六进制(base16)如何转换?是否有一个相关的系统,如base 2,用于base 16 我在一篇文章中发现: 0x1234=1*16^3+2*16^2+3*16^1+4*16^0=4660
但是,如果数字是0xF,这是否表示第0位中的F?我找不到一个简单的例子 有十六位十六进制数字,从0到9,从A到F 数字0到9在十六进制和十进制中是相同的。
0xA是1010。
0xB是1110。
0xC是1210。
0xD是1310。
0xE是1410。
0xF是1510。
例如:
0xA34F=10*163+3*162+4*161+15*160完美,所以0xF=15*16^0。我懂了。因此,之前没有转换。谢谢。另一个简短的问题,阿尔比特离题了。由4位组成的组是否仍然表示为“零位?”我在OP中链接的文章使用了这个术语。此外,16位的组被称为“字”。同样,32位的组被称为“双字”。@sherrellbc:是的,这是相当标准的术语。有时拼写为“Nyble”,与可怜的“byte”相似。另一方面,“字”是什么,高度依赖于处理器和您使用的语言。在找到特定的验证之前,不要假设“单词”是任何特定的长度。请注意,许多编程语言不允许您直接输入“字符二进制”(如
011010
)。C/C++的一些变体允许二进制文件使用0b
前缀(即0b011010
),但它不是标准的。