gpt4 book ai didi

c - 数字的二进制表示

转载 作者:行者123 更新时间:2023-11-30 15:28:09 25 4
gpt4 key购买 nike

我有一个 32 位寄存器,其中 <7 位表示地址> <1 位用于读/写> <24 位用于数据> 。数据首先移入和移出芯片 MSB。逻辑高 (1) 用于读取,逻辑低 (0) 用于写入。我的协议(protocol)告诉我,我应该使用前 7 位作为地址,因此这是否意味着它只会引用前 7 位作为地址,第 8 位是读/写。如果我想从位置 0x12 读取值 0x200,我应该将其指定为 0x13000200 或 0x25000200。

当我这样做时0x12000000(地址)| 0x01000000(读取逻辑为1)它会给我0x13000000。所以我怀疑它是否会从地址0x120x13或其他位置读取,因为前7位是为了地址而访问的,本地址为0x12时,这个逻辑是可以的,但是对于0x13,它有点令人困惑,或者我应该选择第二个“0x25000200”,7位二进制中的0x12是10010,我将添加位1进行读取,这样它将变成100101,十六进制则为0x25。所以我用 7 位和第 8 位来表示地址本身,所以最终它会像 0x25000200 一样。 0x13 二进制是 0001 0011 那么我如何表示 int 这种情况?因为第 8 位已经是逻辑 1,我该如何读取?

最佳答案

根据您的协议(protocol):-

32位寄存器=> <7位地址> <1位读/写> <24位数据>

下面是分别在位置 0x12 和 0x13 处读/写的位设置。

读取(假设数据为0作为读取操作):-

从地址 0x12 读取 -0x25000000 <0010 0101 0000 0000 0000 0000 0000 0000>

从地址 0x13 读取 -0x27000000 <0010 0111 0000 0000 0000 0000 0000 0000>

写入(假设数据为0x200):-

写入地址0x12 -0x24000200 <0010 0100 0000 0000 0000 0010 0000 0000>

写入地址0x13 -0x26000200 <0010 0110 0000 0000 0000 0010 0000 0000>

关于c - 数字的二进制表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26714688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com