use*_*648 15 c++ binary type-conversion
int x = 5;
cout<<(char)x;
Run Code Online (Sandbox Code Playgroud)
上面的代码在原始二进制文件中输出一个int x,但只有1个字节.我需要它做的是输出x作为二进制4字节,因为在我的代码中,x可以是0到2 ^ 32-1之间的任何地方,因为
cout<<(int)x;
Run Code Online (Sandbox Code Playgroud)
不做的伎俩,我该怎么做?
Joh*_*vat 30
有点晚了,但正如Katy在她的博客中所说,这可能是一个优雅的解决方案:
#include <bitset>
#include <iostream>
int main(){
int x=5;
std::cout<<std::bitset<32>(x)<<std::endl;
}
Run Code Online (Sandbox Code Playgroud)
取自:https: //katyscode.wordpress.com/2012/05/12/printing-numbers-in-binary-format-in-c/
Jam*_*lis 11
您可以使用std::ostream::write()成员函数:
std::cout.write(reinterpret_cast<const char*>(&x), sizeof x);
Run Code Online (Sandbox Code Playgroud)
请注意,您通常希望使用以二进制模式打开的流来执行此操作.