计算机中的位运算和数值乘除关系

本文探讨了计算机中位运算如何表示数值的乘除关系。位运算左移(<<)相当于乘以2的幂,如5左移1位等于10。位运算右移(>>)通常表示除法,但奇数位移会丢失最低位,如5右移1位等于2。通过C++代码示例,解释了位运算在数值计算中的应用。
摘要由CSDN通过智能技术生成

计算机中的位运算和数值乘除关系

计算机中数据的存储方式,是以二进制的方式进行存储。位运算的左移和右移一般代表数的乘除,但不同的数据乘除方式所获得的结果,不尽相同。一般位移时,空的位置以0作为补充。

关于计算机中数据的存储方式在这里不做说明,这里只说明数据的换算关系:

  1. 位运算左移<< 属于乘法关系
    无论是奇数还是偶数,位运算左移时(<<),均代表当前数值乘以2的几次方,而这个几次方和移动的位数是相同的。简单举个例子,如果定义一个数5,那么在计算机中进行左移1位时,得到的数就是10,左移两位得到的数就是20,左移3位得到的数是40。
    大家有兴趣的就去算一下,假定a对应的二进制的位数不做限制,那么左移n位,最后得到的数值应该为a*(2的n次方),这里可以用位运算左移来进行数值的乘以2的运算

下面以一段非正式C++编程语言来进行相应演示
/*
定义一个字符类型的数字5,由于字符型变量在计算机中只占用1个字节,也就是8位,数字5对应的二进制为0b0000 0101
1)假如向左移动1位,则得到的二进制为0b0000 1010,换算成十进制的数字就是10
2)假如向左移动2位,则得到的二进制为0b0001 0100,换算成十进制的数字就是20
3)假如向左移动3位,则得到的二进制为0b0010 1000,换算成十进制的数字就是40
*/
char a{5};
a<<=1;//表示a进行向左移一位的位运算
std::cout<<a<<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值