我似乎已经把自己搞糊涂了,以至于这不再有意义了。
1 字节 = 8 位。
所以如果我有一个内存位置,例如
0xdeadbeef
3735928559 (base10)
1101 1110 1010 1101 1011 1110 1110 1111
现在,如果我向 0xdeadbeef
添加一个字节,我要添加的二进制序列是什么?是 1000
吗?如果我加 1 位,我得到 0xdeadbee0
,如果我加 1 位 8 次,我得到 0xdeadbef7
。哪个是正确的?
我记得微处理器的计数器在 PC += 4 中递增,得到 0xdeadbef3
,所以我不确定哪个是正确答案。
最佳答案
我从你的问题中了解到,你对向计数器添加一个位和一个字节感到困惑。
由于内存地址以字节为单位(在编程语言中),因此对其进行的任何算术运算均以字节为单位。
要增加计数器,将 1
添加到它就像将它增加到基地址旁边的一个字节。将 1
添加到 0xdeadbeef
会将其递增到 0xdeadbef0
。
关于c - 十六进制数加一个字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23855794/