【问题标题】:How to declare a 16 Binary Bit Character in C/C++?如何在 C/C++ 中声明 16 位二进制字符?
【发布时间】:2018-06-13 23:08:38
【问题描述】:

每个人都知道,如果你声明一个 8 位的值,你可以做类似的事情

int a = B10001110; 

就像那个 vut 我不知道如何在 16 位中声明它,我做了类似的事情

int b = B1000000100001111; 

但这给了我错误。对此我能做些什么吗?我想要这个 16 位格式声明。

【问题讨论】:

  • C 还是 C++?对于这种情况,这里有很大的不同。
  • Everybody knows 不,大多数人不知道。 B10001110 在 C 或 C++ 中都不是 8 位值
  • 但这给了我错误...叹息,哪个错误??
  • 英语的一个有趣的怪癖是,每个以“每个人都知道”开头的陈述都是错误的。
  • @molbdnilo:每个人都知道。

标签: c++ c literals


【解决方案1】:

C++14 允许您使用 二进制文字 的形式

int b = 0b1000000100001111;

文字的类型 遵循与十六进制文字相同的规则。这不是标准 C,尽管一些 C 编译器允许它作为扩展。

您的 B 表示法既不是标准 C 也不是标准 C++。

【讨论】:

    【解决方案2】:

    也许你可以用这个?

    strtol("1000000100001111", NULL, 2);
    

    至少它是标准的 C。

    【讨论】:

    • 而且贵得离谱。
    • @Bathsheba 确实,但根据应用程序可能需要考虑。
    猜你喜欢
    • 2018-11-12
    • 2017-01-18
    • 1970-01-01
    • 2020-02-22
    • 2014-09-20
    • 2014-01-14
    • 1970-01-01
    • 2011-04-27
    • 2018-02-16
    相关资源
    最近更新 更多