C++中2、8、10、16进制数字的表示及计算

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. 结果图

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值