c - 十六进制数加一个字节

标签 c binary boolean hex

我似乎已经把自己搞糊涂了,以至于这不再有意义了。

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/

相关文章:

python - 列表索引语义错误

C - 给定地址而不是指针时的内存分配操作

c - 为两个双指针释放一个 malloc

将 uint8_t 十六进制值转换为二进制

C# - 数组转置位级别

c - 如何在C中将十六进制字符串(带 float )转换为二进制?

java - boolean 赋值与声明

python - 在多列时间戳上使用 boolean 运算符的高效/优雅的方法

c - 实现链表 C

c - 你如何清除 C 中的字符串 vector ?