gpt4 book ai didi

c - 没有扩展名的 C 中的左位移位

转载 作者:太空宇宙 更新时间:2023-11-04 05:04:23 24 4
gpt4 key购买 nike

我想知道当我向左位移时如何让 C 不扩展我的二进制数

int main ()
{
unsigned int binary_temp = 0b0100;
binary_temp = binary_temp << 2;
printf("%d", binary_temp);
return 0;
}

当我运行它时,我想要返回值 0,因为它已经超出了我拥有的 4 位数字,但现在它返回 16 (10000)。我怎样才能让 C 不延长我的电话号码?

编辑:我希望能够使用二进制形式的数字,所以我只需要 4 位数字,而不仅仅是输出正确的数字。

最佳答案

它不会扩展您的数字,而是将其保存为 4 字节(32 位)大小的无符号整数类型。您只需填写最后 4 位。要将其视为仅 4 位,请将按位与与掩码值一起使用。这是示例代码:

int main()
{
unsigned int binary_temp = 0b0100;
binary_temp = (binary_temp << 2) & 0b1111;
printf("%u", binary_temp);
return 0;
}

关于c - 没有扩展名的 C 中的左位移位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16127787/

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