tft每日頭條

 > 圖文

 > 如何定義c語言二進制數

如何定義c語言二進制數

圖文 更新时间:2025-01-09 10:35:41

如何定義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語言項目合集篇 》:

世上唯一不能複制的是時間,唯一不能重演的是人生。該怎麼走,過什麼樣的生活,全憑自己的選擇和努力。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved