C++ 输出多种进制格式的数

Posted by AspenStars on June 20, 2021

输出多种进制:

  • 2进制:使用bitset头文件
  • 8进制:%ohex
  • 10进制:%d
  • 16进制: %xoct

bitset

注意:bitset 将传入参数转化为二进制补码形式。

常用方法

1
2
3
4
5
6
7
include <bitset>

bitset<n> b;	          //b有n位,每位都为0
bitset<n> b(val);	      //b有n位,每位都是val对应的二进制
bitset<n> b(u);	          //b是unsigned long型u的一个副本
bitset<n> b(s);	          //b是string对象s中含有的位串的副本
bitset<n> b(s, pos, n);	  //b是s中从位置pos开始的n个位的副本

示例

输出时用to_string()转为字符串输出

1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
#include <bitset>
using namespace std;

int main(int argc, char const *argv[]){
	bitset<8> n(15);
	cout << n.to_string() << endl;
	bitset<8> b(-13);
	cout << b.to_string() << endl; 
	return 0;
}

Output:

1
2
00001111
11110011

拓展

1
2
3
4
5
6
7
8
9
10
#include<iostream>
using namespace std;
 
int main(int argc, char const *argv[]){
    int n = 42;
    cout << n << endl;
    cout << hex << n << endl;        // 输出 16 进制
    cout << oct << n << endl;        // 输出 8 进制
    return 0;
}

Output:

1
2
3
 42
2a
52

原文:C++ 如何输出各种进制的数?OJ刷题利器 bitset