1. 直接上代码
#include <iostream>
using std::endl;
using std::cout;
int main() {
// 各进制数字
cout << "十六进制: 0x11 = " << 0x11 << endl; // 0x开头为十六进制
cout << "十进制: 11 = " << 11 << endl; // 默认为进制
cout << "八进制: 011 = " << 011 << endl; // 0开头为八进制
cout << "二进制: 0b11 = " << 0b11 << endl; // 0b开头为二进制
// 取十六进制的低2位
cout << "(0x13 & 0b00000011)取低2位: " << (0x13 & 0b00000011) << endl;
// 取十六进制的高4位
cout << "(0x13 & 0b11110000)取高4位: " << (0x13 & 0b11110000) << endl;
// 如果十六进制的第4位与高4分分别表示不同的内容,则需将数据右移4位
cout << "(0x13 & 0b11110000)取高4位并右移4位: " << ((0x13 & 0b11110000) >> 4) << endl;
/*计算机内部采用二进制计算,无论输入数字是几进制,都会转为2进制
(转为2进制更有利于计算机的运算,与转为其它进制的结果是一致的)再运算,
输出时会自动转为想要的进制,默认情况下输出结果为10进制*/
float num;
// 下式等价于数字全部转为10进制再运算((1 * 16 + 3) + (1 * 2 + 1)) * 0.1 = 2.2
num = (0x13 + 0b00000011) * 0.1;
cout << "(0x13 + 0b00000011) * 0.1 = " << num << endl;
}
2. 结果图