gpt4 book ai didi

c - 当从寄存器中提取特定位时,提取的值是否必须与寄存器具有相同的大小?

转载 作者:行者123 更新时间:2023-11-30 19:34:33 25 4
gpt4 key购买 nike

我当前正在从 16 位寄存器中提取 9 位(最后 9 位)。我在提取位时没有问题,但是当我提取位时,我提取的值末尾是否会有 7 个“0”?代表:

注册:1100101011110011

位掩码:1111111110000000

我提取的值是:110010101 (405)

还是:1100101010000000 (51840)

提前致谢。

最佳答案

两者都很容易实现。

(unsigned short)reg >> (16-9) == 405, // where as
reg & bitmask == 51840

一些“ Controller ”,例如支持 BMI2 扩展的 x86,但是使用位掩码 PEXT reg, bitmask 进行位提取将给出 405。

标题问题的具体答案是否定的;输出变量必须包含足够的位。

unsigned char eight_bits = reg >> 8;  // get's top 8 bits

关于c - 当从寄存器中提取特定位时,提取的值是否必须与寄存器具有相同的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43759499/

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