C++入门教程(十六):二进制的运算

这篇博客介绍了C++中的二进制运算,包括加法、减法、乘法、除法、左移、右移、与、或、异或和取反操作。通过基础示例和讲解,阐述了二进制运算的规则和注意事项,特别是对于固定位数的二进制运算,当运算结果超出位数时,超出部分会被舍弃。此外,还提到了二进制运算在C++代码中的简化表达方式以及保存过大数值时需注意的范围问题。
摘要由CSDN通过智能技术生成

小古银的官方网站(完整教程):http://www.xiaoguyin.com/
C++入门教程视频:https://www.bilibili.com/video/av20868986/

目录

加法

010 + 010为例子:加号两边的数值的右边第一位都是0,相加得0;中间那一位都是1,相加得2,所以需要进位,结果变为0;左边第一位都是0,相加得0,再加上进的位,所以结果是1。那么最后结果就是100。也就是十进制的2 + 2的结果是4

注意:而C++中的二进制的运算都是有一个前提条件,就是必须固定位数再进行运算,如果进位时超出位数那么超出部分将会被舍弃。例如要相加的二进制数值是3位数,110 + 010,按照加法运算结果应该是1000,因为位数已经固定三位,左边超出的一位将被舍弃,所以结果是000

提示:二进制表示数值时,左边的0是可以省略的,把左边的0写出来是为了方便讲解,如二进制的00000010可以省略写成二进制的10,相当于十进制的00123456也可以简写成123456。由于C++的二进制运算是固定位数的,所以就算你省略了左边的0,程序也是知道左边应该补上多少个0。

基础示例

#include <iostream>

int main(void)
{
    std::cout << "0b010 + 0b010 = " << (0b010 + 0b010) << std::endl;

    unsigned int value = 4294967295;
    std::cout << (value + 1) << std::endl;

    return 0;
}

输出结果:

0b010 + 0b010 = 4
0

基础讲解

二进制的010加上二进制的010结果是二进制的100,也就是十进制2加上十进制2等于十进制的4

unsigned int是保存非负整数的int类型,它的最大值是4294967295,也就是二进制32位都是1的值,而且unsigned int是用固定的32位二进制来保存数据的,所以当它加上1的时候,就会因为进位而超出一个

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值