单个位变量

位操作运算符的操作内的单个位变量。

为什么要按位运算符?

在过去,记忆是非常昂贵的,和电脑并没有太多的。因此,有动机利用可用内存的每一点。考虑布尔数据类型-即使它只有两个可能的值(真或假),它可以由一个单一的位来表示,它占用的内存一个字节!这是因为变量需要独特的地址,和记忆只能在字节。bool使用1位和其他7个都浪费了。

使用按位运算符,它可能是写的功能,允许我们紧凑的8布尔值到一个单一的字节大小的变量,能够显着节省内存,在更复杂的代码的费用。在过去,这是一个很好的权衡。今天,它是不。

现在的内存是便宜,程序员发现,它往往是一个更好的主意,代码是容易理解和维护比什么是最有效的。因此,按位运算符有点失宠,但在某些情况下,最大限度的优化是必要的(例如,科学的程序使用了大量的数据集,或在游戏中的位操作技巧可用于额外的速度)。然而,这是很好的至少知道他们的存在。

有6位操作算子:


这是为了方便和保持实例简单。在C++中,使用的比特数将根据数据类型的大小(以字节8位)。

左移,右移操作符

按位左移(<<)位左移位算子。例如,考虑3号,这是二元0011。左移1(3<<1)变化的0011至0110,这是十进制的6。注意每个点移动了1处向左。左移2(3<<2)变化的0011至1100,这是十进制的12。左移3(3<<3)的变化在0011~1000。请注意,我们移掉到底有多少!移出去的位的二进制数端丢失。

按位右移(>>)算子移位权。右移1(3>>1)变化的0011至0001,即十进制1。最右边的位移下来,丢了!

虽然我上述的例子是移动文字,你也可以改变变量:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值