您好、欢迎来到现金彩票网!
当前位置:手机棋牌游戏平台 > 位操作 >

书上说C++中的按位与操作可以取操作数中的若干指定位怎么理解

发布时间:2019-07-10 06:07 来源:未知 编辑:admin

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  但是怎么取低字节呢?现在a也是八位二进制的,如果a是十六为二进制呢?是不是就在0377的八位二进制前面加八个0

  展开全部and运算通常用于二进制取位操作,例如一个数 and 1的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为0表示该数为偶数,最末位为1表示该数为奇数。

  or运算通常用于二进制特定位上的无条件赋值,例如一个数or 1的结果就是把二进制最末位强行变成1。如果需要把二进制最末位变成0,对这个数or 1之后再减一就可以了,其实际意义就是把这个数强行变成最接近的偶数。

  xor运算通常用于对二进制的特定一位进行取反操作,因为异或可以这样定义:0和1异或0都不变,异或1则取反。

  当一个位为1时,and的结果和另外一个数这位的数一样。当一个数这个为为0时,这个位的结果只能是0。

  同理:为1的位和另外一个数的对应位结果必然为1。为0的位结果因另外一个数而变化。

  知道合伙人数码行家采纳数:33589获赞数:63033学的虽是计算机网络,但是读的书很多也很杂也是一知半解,所以到现在我也不知道我有啥能力!只知道努力!向TA提问展开全部按位与操作,从算术上来说就是二进制的乘法,从集合的观点就是取交集,所谓的取操作数中的若干指定位,就是借助于另一个数,把它们的交集取出来,这个操作,有个学名,叫mask操作。如你所说char c = a & 0377 (0377是个八进制格式的) ,这个0377的值就是mask值。二进制就是000 011 111 111 ,当a的低字节中的任意一位是0时,0 & 1 = 0,所以得出的结果是 a的任意一位的二进制的值,当a的低字节中的任意一位是1时, 1 & 1 = 1,得出的结果还是a的任意1位2进制的值。

http://tritecbuilding.com/weicaozuo/395.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有