我可以在C或C ++中使用二进制文字吗?

哈姆扎

我需要使用一个二进制数。

我试着写:

const x = 00010000;

但这没有用。

我知道我可以使用与值相同的十六进制数00010000,但是我想知道C ++中是否存在用于二进制数的类型,如果没有,那么是否存在针对我的问题的另一种解决方案?

弗拉德

您可以使用BOOST_BINARY在等待的C ++ 0x。:)BOOST_BINARY在模板实现方面具有优势,因为它也可以在C程序中使用(它是100%预处理程序驱动的)。

要进行相反的处理(即以二进制形式打印数字),可以使用非便携式itoa函数,也可以实现自己的

不幸的是,您不能使用STL流进行base 2格式化(因为setbase将仅支持base 8、10和16),但是您可以使用或的std::string版本itoa(更为简洁,但效率稍低)std::bitset

#include <boost/utility/binary.hpp>
#include <stdio.h>
#include <stdlib.h>
#include <bitset>
#include <iostream>
#include <iomanip>

using namespace std;

int main() {
  unsigned short b = BOOST_BINARY( 10010 );
  char buf[sizeof(b)*8+1];
  printf("hex: %04x, dec: %u, oct: %06o, bin: %16s\n", b, b, b, itoa(b, buf, 2));
  cout << setfill('0') <<
    "hex: " << hex << setw(4) << b << ", " <<
    "dec: " << dec << b << ", " <<
    "oct: " << oct << setw(6) << b << ", " <<
    "bin: " << bitset< 16 >(b) << endl;
  return 0;
}

产生:

hex: 0012, dec: 18, oct: 000022, bin:            10010
hex: 0012, dec: 18, oct: 000022, bin: 0000000000010010

另请阅读Herb Sutter的“庄园农场的弦乐格式化者”,以进行有趣的讨论。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我可以在C ++中使用istream读取二进制数据吗?

我可以在arm64二进制文件中使用Thumb指令吗?

可以在二进制搜索中使用ta jodatime DateTime列表吗?

C#二进制文字

我们可以在不使用fopen的情况下用C打开二进制文件吗?

我可以通过查看二进制文件中的符号来识别未使用的 C++ 头文件吗?

我可以在Azure上运行本机C ++二进制文件吗?

可以在Python Scikit-Learn中使用OneVsRestClassifier生成单独的二进制分类器模型吗?

可以在CCC配置文件中使用sh(或索引文件)代替二进制文件吗?

在 C 中使用递归将二进制转换为十进制

我可以在Linux,* BSD和Illumos上使用相同的二进制文件吗?

我可以使用同名的库和二进制文件吗?

使用Windows PowerShell中的Node,我可以生成二进制输出到stdout吗?

我可以使用二进制在汇编中写入整数常量吗?

我在C中使用AES加密和解密txt文件时使用不同的二进制文件

在C#中使用列表进行二进制搜索

在C ++中使用添加和删除节点功能实现模板二进制搜索树

如何在Linux上的C库中使用已编译的二进制文件?

在C代码中使用指令的原始二进制Blob

在C中使用二进制文件的I / O在哪里出错?

如何在C ++中使用布尔向量模拟二进制值?

如何在C ++中使用混合文本和二进制文件读取大文件

在 C++ 中使用 MsgPack 读取二进制文件

如何将库链接到我的C代码并在Rust二进制文件中使用它?

恶意软件二进制文件可以打包吗?

pip可以列出其二进制轮吗?

URL #anchor可以包含二进制数据吗?

二进制搜索树可以实现Map吗?

二进制搜索树递归-我需要使用setLeft对吗?