首页 置换 选车 估价 问答 生活 经销商 车管所 汽车资讯 汽车销量 车牌查询 今日油价 天气预报
您的位置: 首页 > 生活 > 其他 > 如何定义c语言二进制数(浅析二进制妙用)
如何定义c语言二进制数(浅析二进制妙用)
更新时间:2024-07-05 16:37:57

如何定义c语言二进制数(浅析二进制妙用)1

如果数字n是二进制表示01相间的数字,那么a=n (n>>1)是一个全1的数字,b=a&(a 1)是二进制表示全0的数字。

判断一个数字n是否是2的次幂的最快的方式:如果数字n是2的次幂,那么它的二进制表示只有一位是1,其余位都是0,那么n&(n-1)=0。

求一个数的二进制表达中1的个数,有个技巧。

(当然,python的话可以直接count('1'))

假如x是一个二进数,例如x=0xfffa(1111 1111 1111 1010),要实现去掉最低位一个1,可进行的操作是x&=(x-1),此时x==0xfff8(1111 1111 1111 1000)。基于该思想,利用while循环对(x)判断,可实现计算二进制数中所有位上1的个数。

如何定义c语言二进制数(浅析二进制妙用)2

求一个数的二进制表达中0的个数

假如x是一个二进数,例如x=0xfffa(1111 1111 1111 1010),要实现去掉最低位一个0,可进行的操作是x|=(x 1),此时x==0xfffb(1111 1111 1111 1011) ;再去掉一个0,同样,x|=(x 1),则x==0xffff。如果x的2字节表示,则(x 1)为0。基于该思想,利用wile循环对(x 1)判断,可实现计算二进制数中所有位上0的个数。注意,x=1时,1的高位默认有0的(注意是所有位而不是写出来的位上,因为二进制高位的0是默认不写出来的,但是不写出来不代表没有啊)。

如何定义c语言二进制数(浅析二进制妙用)3

异或的特征,相同的数字异或为0,0异或任何数字都是任何数字。可以利用异或来找到数组中只出现过一次的元素。

如何定义c语言二进制数(浅析二进制妙用)4

不使用其他空间,交换两个值,32就是97和65的异或值(大小写字母ASCII码之间的异或值)

使用ASCII码和异或的性质,实现大小写的相互转换:s[index]^=(1<<5)

C 中,A–65,a–97,异或表示不考虑进位的加法65^32=97,97^32=65

转换大小写用这种写法,简直震惊了)

尾言

如果阁下正在学习C语言,并且C语言不是很好的同学,不妨关注视频教程专栏教程《C语言51课视频教程合集片》:

通俗易懂,深入浅出,文章不深奥,不需要钻研,在公交、在地铁、在厕所都可以阅读,随时随地涨姿势。

图文并茂,通俗易懂《C语言项目合集篇 》:

世上唯一不能复制的是时间,唯一不能重演的是人生。该怎么走,过什么样的生活,全凭自己的选择和努力。

,
相关推荐RECOMMEND
电脑学校哪个好
电脑学校:哈尔滨工业大学的计算机科学与技术学院,吉林大学的计算机科学与技术学院,华中科技大学的计算机科学与技术学院,这几个都不错。计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,...
黎山老母什么级别神仙
有人说她就是女娲娘娘,当年补天之后,女娲娘娘虽然力竭而死,不过神仙嘛,一转身,一变换又成了另一个人。也有人认为黎山老母不是女娲,她是远古的女仙,是北斗星的母亲,由斗姆天君化身而来,又叫做无极老母,在民...
水晶功效是真的吗
在许多消费者中流传着水晶具有保健作用的说法,卖水晶的人也以此为卖点,来吸引消费者。比如,号称水晶具有强大的能量和磁场,可以祛病避邪,释放身体中的负能量;或称水晶有益于生殖系统与相关器官的健康,可以治疗...
丰唇疼吗
丰唇手术目前最常用的方式为注射(爱贝芙等),手术采用局部麻醉,因此是不会感觉到疼痛的。术后经过专家精心的辅助护理和冰敷,基本上是无创的,因此,你大可不必担心。
腰围29是多少
对于腰围29是多少的计算方法其实很简单,我们只要记住一个通用公式就可以了,那就是码数等于尺寸加七,反过来即是尺寸等于码数减七,举个例子来说明一下:腰围29是多少,这里的29就是码数,通过公式我们就能够...
微信只记得微信号怎么找回密码
在微信7.0.15版本中,在登录页面选择找回密码,之后点击申诉找回微信账号密码,点击开始申诉,选择记得微信号,输入微信号、手机号,点击下一步,如果不可以通过手机号登录,需要填写申诉资料,申诉成功即可重...