目录
进制的前缀后缀
进制 | 英文 | 范围 | 前缀 | 后缀 |
二进制 | Binary | 0-1 | 0B 0b | B |
八进制 | Octal | 0-7 | 0 | O |
十进制 | Decimal | 0-9 | 无 | D |
十六进制 | Hexadecimal | 0-9,A-F | 0X 0x | H |
cin输入指定进制数
以数字99为例
#include <iostream>
using namespace std;
int main(){
int a, b, c;
cout << "八进制:";
cin >> oct >> a;//用八进制输入一个数
cout << "十六进制:";
cin >> hex >> b;//用十六进制输入一个数
cout << "十进制:";
cin >> dec >> c;
/*
*10行这里必须加dec,因为前面用过了hex,不用dec的话它还是按照 十六进制来看的
*如果没有前面那俩oct、dex输入的话,直接cin >> c;是没有问题的
*/
cout << "十进制下a、b、c的值:" << endl;
cout << "a == " << a << endl;
cout << "b == " << b << endl;
cout << "c == " << c << endl;
}
输入:
143
63
99
输出:
a == 99
b == 99
c == 99
cout输出指定进制数
以十进制数42为例
#include<iostream>
#include<bitset>
using namespace std;
int main(){
int num = 42;
cout << "二进制输出:" << (bitset<8>)num << endl;
/*
*bitset头文件#include <bitset>
*< >中的8表示输出八位二进制 ,当然你也可以写成12、16、32等等
*/
cout<< "八进制输出:" << oct << num << endl;
//cout << num << endl;
cout<< "十进制输出:" << dec << num << endl;
/*
*这里同样也不能直接写cout << num << endl;(会按八进制输出)
*理由同上面“以数组99为例”的解释
*/
cout<< "十六进制输出:" << hex << num << endl;
return 0;
}
输出
二进制输出:00101010
八进制输出:52
十进制输出:42
十六进制输出:2a
直接定义二、八、十、十六进制数
#include<iostream>
using namespace std;
int main(){
//以99为例
int a = 0b01100011; //二进制定义
int b = 0143; //八进制定义,开头加个0就行啦
int c = 99; //十进制定义,和普通定义一样
int d = 0x63; //十六进制定义
cout << a << "-" << b << "-" << c << "-" << d;
}
输出:99-99-99-99