gpt4 book ai didi

C 到二进制 : putchar ('0' + ((x>>i) & 1));

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

我很难理解这一点。我的教授写了一段代码将十进制转换为二进制,但我似乎无法理解发生了什么。有人可以像我 5 岁一样向我解释一下吗。

main() {
int i, x = 9;
for (i = 31; i >= 0; i--) {
putchar('0' + ((x >> i) & 1));
}
return (0);
}

最佳答案

表达式

'0' + ((x>>i) & 1)

通过屏蔽掉 xi:th 位,向字符 '0' 添加 0 或 1。如果您向字符 '0' 添加 1,C 会保证您得到字符 '1',因此这是可行的。

子表达式 ((x >> i) & 1) 表示“取 x,将其值 i 位移动到对,然后用值 1"执行按位 AND。这“屏蔽”了 i:th 位,因此子表达式等于 x 的那个位的值。

关于C 到二进制 : putchar ('0' + ((x>>i) & 1));,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25608603/

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