【发布时间】:2015-05-27 02:39:03
【问题描述】:
我不明白第三行试图完成什么。我最近刚刚学习了按位运算符。如果有人能陪我走过最后两行,那就太好了。我了解移位运算符,但对于移位运算符,我并不完全确定它的含义。
void create(uint8_t bInt[], int64_t num){
for (int pos = 0; pos < 32; pos++){
bInt[pos] = (num & mask) ? 1 : 0;
mask = mask << 1;
}
}
对于这个赋值,我们使用 uint8_t 值的 32 元素数组来表示 32 位整数。例如,二进制整数 84193 是 0....0001 0100 1000 1110 0001。在 bInt[] 中,它会被存储为 1000 0111 0001 0010 1000 0000....0.感谢您的宝贵时间
【问题讨论】:
-
称为条件运算符:en.wikipedia.org/wiki/%3F:
-
三元运算符:if(这个条件)return 1 else return 0;
-
您可以将
(num & mask) ? 1 : 0替换为(num & mask) != 0或!!(num & mask)
标签: c bitwise-operators