gpt4 book ai didi

c - 使用 或 掩码进行位操作

转载 作者:行者123 更新时间:2023-11-30 14:54:24 26 4
gpt4 key购买 nike

假设我有一个变量 inst,它保存编码的 MIPS 指令。我想将 rt 字段设置为 0,而不更改其他字段。 rt 字段是一个 5 位字段,索引号为 16-20。我第一次尝试:

inst = inst & ~(1 << 16);

它将 rt 字段设置为 0。然后我想将新变量 new_reg 的值放入 rt 字段中。我尝试过:

inst = inst | (new_reg << 16);

谁能确认一下这两行代码是否正确?

最佳答案

我相信问题出在你的第一个位掩码上。命令 (1 << 16) 仅屏蔽第一位,您要屏蔽 16-20 的所有位。尝试:

inst = inst & ~(0x3f << 16)

然后:

inst = inst | (new_reg << 16);

关于c - 使用 或 掩码进行位操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46777679/

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