gpt4 book ai didi

你能直接用 c 语言家族对表示为二进制数字的值进行编码吗?

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

在基于 c(或受 c 启发)的语言家族(即 C/C++/Objective-C/JavaScript)中键入常数时,您可以直接键入数字的十进制值,或者您可以在它前面加上 0x 以通过十六进制写入它。 JavaScript 甚至允许您使用八进制编码键入值,方法是在数字前加上零(...这对我来说完全是疯了,因为 09 看起来是 9 但实际上解析为零!让人迷惑的方法!应该是 8x 前缀或类似的,但我离题了...)

我想知道是否有直接用二进制输入内容的等价物。

例如,我希望看到这样的内容:

int x = Bx00001001; // x would equal 9, (bits 8 and 1 are set)
int x = 1x00001001; // Alternate prefix '1x' instead of 'Bx'

只是为了好玩,我实际上正在考虑编写一个 pre-pre-compiler 来做到这一点,但同样只是为了好玩,因为它当然不能移植代码。 p>

不过,还是希望有一个标准的方法来做到这一点。诚然,是的,只用十六进制编码非常容易(毕竟你最多只需要学习 15 个),但同样,只是出于好奇想知道更多。

但真的......八进制的废话到底是怎么回事!!如果你问我疯了!

最佳答案

标准 C 中没有二进制常量。

标准 C 只有十进制(无前缀)、八进制(0 前缀)和十六进制(0x0X 前缀)常量。 GNU C 提供二进制常量作为 C 的 GNU 扩展,参见:

6.60 使用“0b”前缀的二进制常量

http://gcc.gnu.org/onlinedocs/gcc/Binary-constants.html

关于你能直接用 c 语言家族对表示为二进制数字的值进行编码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9234107/

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