位操作,置位,清零

2021-07-09 15:14:09 字數 433 閱讀 5498

很久沒有用到位相關的東東了,現在來回顧一下如何將乙個變數的某位置位或清零。

#define setbit(x, y)     (x |= 1 << y)    //置位

#define clearbit(x, y)     (x &= ~(1 << y))    //清零

這裡要注意的是位或'|'  位與'&' 與邏輯或'||' 邏輯與'&&'的區別。

前者是針對變數的每一位,後者是針對整個變數,即真與假。

如何取出變數的某一位呢?

#define  getbit(x, y)       (x &= (1 << y))

if(getbit(x,y))

else

或者getbit(x, y) ? 1 : 0

以上都要注意變數x的位元組數,這個與機器和定義的變數型別有關,如果y太大,導致溢位,結果是未定義的。

C C 位操作 位運算

在c語言中,可以單獨操控變數的位 bit 一般高階語言不會處理這級別的細節,c在提供高階語言便利的同時,還能為組合語言所保留的級別上工作,這使其成為編寫裝置驅動程式和嵌入式 的首選語言。目錄 二進位制整數 binary 有符號整數 八進位制 octal 十六進製制 hex 位運算子 按位與 的用途 ...

同步置數 同步清零的計數器

本文實現的同步置數 同步清零的計數器,同樣是基於王先生的書籍上的源 實現。下面是計數器的源 暫時以的形式發出來 這是書籍中沒有的測試檔案,為了學習verilog,必須學會驗證檔案的編寫,其實也就是激勵源的產生。然後是最終得到的時序波形圖 在驗證檔案中,我特意將data的初始值賦為8 h01,就是為了...

重溫位操作 C 位操作介紹

c 位操作包括兩種 傳統的c語言方式的位操作和c 中利用bitset容器的位操作 一 傳統的c方式位操作 1.基本操作 使用乙個unsigned int變數來作為位容器。2.操作符 按位或操作符 result exp1 exp2 當exp1和exp2中對應位中至少有乙個為1時,result中對應位為...