当直接赋值二进制值和十六进制值时,可以分别按如下所示进行分配:
uint8_t val1 = 0b10101;
uint8_t val2 = 0xFF;
0b
和0x
是什么意思?特别是前面的0。是否可以使用其他值来代替0
另一个有趣的问题是,还有什么角色可以取代b
和x
?有没有一个八进制的例子?
发布于 2019-08-22 16:40:06
0b
(或0B
)表示二进制文字。C++从C++14开始就允许它。(它还不是C标准的一部分,尽管有些编译器允许它作为扩展。) 0x
(或0X
)表示十六进制。
0
可用于表示八进制文字。(有趣的是,0
本身是一个八进制文字)。此外,您可以使用转义序列\
后跟要读取的八进制数字:这仅适用于使用""
或char
定义const char[]
文字或使用''
定义多字符文字的情况。在处理字符串时,您经常看到用来表示NUL的'\0'
表示法就利用了这一点。
如果没有用户定义的文字后缀,则任何以非零开头的数字文字都是以十进制表示的。
在C++世界中有传言使用0o
作为八进制文字,甚至可能放弃对领先的零版本的支持。尽管这将是一个可怕的突破性变化。
发布于 2019-08-22 16:45:52
0b和0x是什么意思?
它们的意思是数字文字分别以二进制和十六进制为基。
你能用其他值代替0吗?
以非零数字开头的数字文字将是十进制文字。
也是另一个奇怪的问题,还有什么字符可以代替"b“和"x"?
除了b和x之外,任何八进制数都可以放在那里,在这种情况下,它是八进制数的最高有效位。
https://stackoverflow.com/questions/57605226
复制相似问题