固定二進位制位的整型變數

2021-09-07 16:51:33 字數 1090 閱讀 5632

c99中,設定了stdint.h來定義一組整型資料型別,形如:intn_t和uintn_t對不同的n值指定n位有符號和無符號整數,n的值一般為:8,16,32,64。這樣,我們就可以無歧義的宣告乙個16位無符號變數:uint16_t  a

如果要想用printf列印這樣宣告的變數,可移植的做法是,包含標頭檔案inttypes.h(它內部包含了stdint.h),該標頭檔案中定義了一串類似prid32,prid64,priu32,priu64等等的巨集,根據系統的不同擴充套件為不同的含義。

###inttypes.h標頭檔案片段 42

43 # if __wordsize == 64

44 # define __pri64_prefix "l"

45 # define __priptr_prefix "l"

46 # else

47 # define __pri64_prefix "ll"

48# define __priptr_prefix 49

# endif 50

51/*

macros for printing format specifiers.

*/52

53/*

decimal notation.

*/54 # define prid8 "d"

55 # define prid16 "d"

56 # define prid32 "d"

57 # define prid64 __pri64_prefix "d"

58101

/*unsigned integers.

*/102 # define priu8 "u"

103 # define priu16 "u"

104 # define priu32 "u"

105 # define priu64 __pri64_prefix "

u"

1 #include 2 #include 3

int main(int argc, char *ar**) 4

二進位制位運算

與運算,6 3 2 或運算 6 3 7 異或運算 6 3 5 反碼 6 7 左移 3 2 12 3 2 2 12 右移 3 1 1 3 2 1 無符號右移 3 1 1 3 2 1 按位與,當兩位同時為1時才為1如 1 1 1 1 0 0 0 1 0 6 3相當於 0110 0011 0010 2 按...

更新二進位制位

問題描述 給出兩個32位的整數n和m,以及兩個二進位制位的位置i和j。寫乙個方法來使得n中的第i到j位等於m m會是n中從第i為開始到第j位的子串 日期 2017 8 22 思路 由於題目的提示中已經給出,i到j有足夠的空間放置m,將n中的第i到j之間的數字全部置為0,最後與m異或即可 includ...

二進位制位運算

一 按位與 位全為1,結果才為1 0 0 0 0 1 0 1 0 0 1 1 1 特殊用法 清零。如果想將乙個單元清零,就是使其全部二進位制位為0,只要與乙個各位都為零的數值相與,結果為零 取乙個數中的指定位。如x 10101110要取x的低4位,用x 00001111 00001110即可 二 按...