C++如何将int输出为32位二进制文​​件?

Var*_*lex -2 c++ binary iostream outputstream c++11

我想输出一个int32位二进制格式.循环和转移我唯一的选择?

Var*_*lex 6

循环是一种方式.您也可以使用bitset库.

#include <iostream>
#include <bitset>

int main(int argc, char** argv) {

    int i = -5, j = 5;
    unsigned k = 4000000000; // 4 billion
    std::cout << std::bitset<32>(i) << "\t" << std::bitset<32>(j) << std::endl;
    std::cout << std::bitset<32>(k) << std::endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出将是:

11111111111111111111111111111011       00000000000000000000000000000101
11101110011010110010100000000000
Run Code Online (Sandbox Code Playgroud)