栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

《C语言的位操作符》

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

《C语言的位操作符》

今天我们来聊一聊c语言的位操作符,老规矩,觉得猪猪讲的不错的还请一键三连,毕竟猪猪码字不易,如果有错误的地方,还请大家位于评论区斧正,感谢大家的支持!

【一】位的基本概念

要知道我们存储的数据都是以二进制的形式在计算机的内存中存贮,就算是字符也是化为了ASCII码在计算机中的存储,我们通常只能根据类型的大小去访问相应的空间大小。但是有些泯灭人性的公司在搞面试题的时候就喜欢搞这个位的概念。正数的源码,反码,补码都是相同的,最高位是符号位,最高位为0则是正数,若是1则表示这个数十负数。而负数就不一样了,源反补码是不相同的。

负数反码等于负数的符号位不变其他位按位取反,补码就是反码加一,不管是正数还是负数在计算机中存放的都是反码。

【二】&,|,^

&这个符号就是按位且,计算机语言中0代表假,非0代表真,在二进制中,也就是有0既0,全1才为1。

|这个符号就是按位或,同理0代表假,非零代表真,在二进制中,全0才为0,有1就为1。

^这个符号就是按位异或,在二进制中,两个二进制位相同就为1,不同就为0。

这些概念都是非常简单的,只是你不会或者说找不到机会去运用这才是一个问题。

【三】位操作符的运用

一下所有题目,猪猪只给你们提供简单的思路,实现还是需要靠你们去vs上自己动手,毕竟不能做一个伸手党对吧?

1.求一个数中的二进制中有多少个1或者0?

这道题其实还是比较简单的,因为你直接将这个数字&1就可,如果为1则表示最后一位为1,反之就为0,因为1的二进制前面的数都是0,和0&得到的结果必定是0,但是最后一位是1啊,和1&就是1,和0&就是0,然后将这个数字右移一位就行,这是非常简单的

2.一个数组中有的数字出现了两次,但是只有一个数字出现了一次,让我们去找到这个出现了一次的数据,这道题其实是非常简单的,直接所有的数互相^就可,因为相同的数字^之后就为0,但是0和任何数字^都是原本的数字,所以直接所有的数字按位与,你得出的结果就是那个出现了一次的数据。

以上就是猪猪对所有的位操作符的理解,如果觉得猪猪称述还算不错的话,还请于评论区一键三连,如果猪猪称述的有啥问题的话,还请于评论区斧正。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/890050.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号