不应该0x00000100 = 4.
我知道0x00000001 = 1,因为2 ^ 0和0x00000010 = 2,因为2 ^ 1.我的想法有什么问题?
initVariable(&variable1, "variable1", "1, 2, 3", 0x00000100);
assertIntegerEquals(variable1.address, 4); // 0x00000100 = 4?
Run Code Online (Sandbox Code Playgroud)
我的断言失败了,因为它说256!= 4
Die*_*Epp 26
0x以C 开头的数字在C中被解释为十六进制(基数为16).
所以0x10 == 16,和0x100 == 256,0x10000 == 65536等等.
两个人的权力是:
0x00000100在base-16中,因为0x前缀表示您使用的是十六进制表示法.
所以0x00000001= 1*16 0 = 1,0x00000010= 1*16 1,0x00000100= 1*16 2 = 256和0x00000123= 1*16 2 + 2*16 1 + 3*16 0 = 256 + 32 + 3 = 291
要使用base-2,base-10和base-16表示法,您可以尝试以下网站:http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html
| 归档时间: |
|
| 查看次数: |
9254 次 |
| 最近记录: |