位元組的位操作 置位 資料位值的提取 C語言實現

2021-10-24 22:11:29 字數 583 閱讀 7414

在日常的程式設計中,對於資料的位操作來說是十分普遍的活,下面以實際的code來說說資料的位操作,本文是對長度為8bit即乙個位元組的資料進行置位以及資料提取的操作。

void

setvaluetobyte

(uint8_t *reg_addr, uint8_t value,

int n)

part ⅱ 從某個位元組的某個位起始提取長度為n的資料

入參說明,num:需要進行處理的資料, bit:需要從資料的那個位開始提取bit = 1~8,len:提取的資料的長度len = 1~8。

unsigned

char

getvaluefrombyte

(uint8_t num, uint8_t bit, uint8_t len)

return

(num >>

(bit -1)

)& bitsize;

}

以上。

STM32的7位資料位支援

對於外部裝置來說,stm32可支援7位資料位,但是必須不能是無校驗,同時需要做一些額外的處理 眾所周知,stm32系列微控制器控制暫存器只支援8 9位資料位 但是在設定8資料位時,如果選擇了硬體奇偶校驗控制,校驗位會被插到msb的第8位,這個時候資料也就變成了7位。8資料位時傳送時序圖,注意看資料幀...

加法運算中的有效資料位

先考慮兩個二進位制數之間的加法 對於補碼資料來說,加減法運算規則相同,因此只討論加法運算情況 運算。設資料位較大的位數為n,則加法運算結果需要用n 1位才能保證運算結果不溢位,也就是說兩個長度為n 另乙個資料位長度也可以小於n 的二進位制數進行加法運算,運算結果的有效資料位產長度為n 1。如果運算結...

C語言位操作中指定的某一位數置0 置1 取反

一 指定的某一位數置1 巨集 define setbit x,y x 1 二 指定的某一位數置0 巨集 define clrbit x,y x 1 三 指定的某一位數取反 巨集 define reversebit x,y x 1 三 獲取的某一位的值 巨集 define getbit x,y x y...