![]() |
1
6
尽管
draft C99 standard
也不是
draft C11 standard
支持二进制文字,因为您特别提到
他们给出了以下示例( see it live ):
看起来
这在标准C++中也不可用,直到C++14 [lex.icon] . |
![]() |
2
2
由于前导0被读作非常大的八进制文字,这可能不是您想要的。令人惊讶的是,C没有二进制文字。
作为扩展,
|
![]() |
3
1
使用十六进制十进制,它们更紧凑,可以表示二进制示例:
按照你想要的方式使用二进制代码在别人的代码中尤其难看。 同样,以0开头的数字(在您的示例中)将被解释为八进制。 |
![]() |
4
1
要添加@Shafik的答案:
合作对象:
实际上,嵌入式系统对扩展的要求要严格得多,特别是如果你不幸被要求遵守诸如 MISRA-C 十六进制转换只是将4个二进制数字分组为0x0->0xf。 |
![]() |
5
0
我认为这是因为您超过了uint数据类型中可以存储的最大整数。 尝试使用布尔类型的数组。 |
![]() |
no one special · 32位整数缩放,无溢出 6 年前 |
![]() |
Benn Tan · 比特操作:更难翻动硬币 6 年前 |
![]() |
Ganesh Thampi · 使用位运算符将十进制转换为二进制 7 年前 |
![]() |
Ganesh Thampi · 使用位的奇偶程序 7 年前 |
![]() |
datapanda · 三维网格的莫顿反向编码 7 年前 |
![]() |
rubyquartz · 交换无符号短整数的字节 7 年前 |
|
John Proctor · C中位的掩蔽范围 7 年前 |
![]() |
Areg Sarvazyan · 从无符号int中提取位的函数 7 年前 |
|
user9505617 · 按位异或0xFFFFFFFF? 7 年前 |