gpt4 book ai didi

c - 有没有办法操纵我在 C 中移动的位

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

如果我有一个整数 a,可以说它等于 0。有没有办法让我说将 101 左移到变量中,然后再将 011 移到变量中?然后我可以在最后得到 int 十进制数吗?它最终会变成 0b00000000000000000000000000101011。或者我应该只使用 OR 运算。

最佳答案

您不能将位移入变量;你可以或他们在:

int a = 0;
a |= 5;
printf("a = %d\n", a);
a <<= 3;
a |= 3;
printf("a = %d\n", a);

如果您的系统支持二进制常量,您可以使用二进制常量而不是小数(如果您愿意,您可以在 5 和 3 前加上 0 表示八进制或 0x 表示十六进制- 你也可以根据口味用不同的格式打印)。如果不知道 a 的起始值是 0,您将在第一个 |= 操作之前执行移位赋值操作。

最终,您不得不担心左移一个有符号整数值会导致溢出——这会导致未定义的行为。不过,问题中的值不是问题。

关于c - 有没有办法操纵我在 C 中移动的位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41708121/

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