整型變數逐位取出賦值字元陣列

2021-10-07 01:55:59 字數 848 閱讀 7834

將整型變數每個位元組對應的值分離出來給字元陣列賦值:

方法1:

移位:

int value = 258;

char table[4] =

for(i=0;i<4;i++)

//value值右移並取出其低8位

方法2:

共用體

union a

value = 257;

//可自動知道a[0]~[3]的數

將字元陣列拼接成整型變數:

方法1:

拼接

int cmd_table = 0;

char a[4]=;

a[0] = 254;

a[1] = 254;

a[2] = 255;

a[3] = 255;

for(i=0;i<4;i++)

等價於cmd_table |= a[0]<<0

cmd_table |= a[1]<<8

cmd_table |= a[2]<<16

cmd_table |= a[3]<<24

//每8位或上需要拼接的字元陣列位置,只需將陣列移位就可以

方法2:

共用體

union a

//table均被賦值 需要取出的就是前四個位元組代表的整型變數

//直接讀出a即可

union a value;

value.a

取乙個整型變數的最低8位

編寫程式,取整數的二進位制的低八位,並顯示其對應的十進位制數。如乙個十進位制整數2010,它的二進位制是11111011010b,它的低八位是11011010b,轉換為十進位制是218。程式執行結果如下 輸入 2010 輸出 分析 還是以十進位制整數2010為例吧,它的二進位制數為111110110...

我變數整型

所以,如果我理解正確的話,電腦就會在32位的資料塊 4位元組 但在我的c 程式,我可以給乙個變數的單位元組的記憶體。這似乎是矛盾的我。我想我的問題歸結為 說我有乙個程式,使用了大量的變數,所以空間問題。乙個位元組就足夠了,我需要把我給他們節省空間為字元資料 1位元組 但是,如果計算機傳送到最小的 塊...

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

c99中,設定了stdint.h來定義一組整型資料型別,形如 intn t和uintn t對不同的n值指定n位有符號和無符號整數,n的值一般為 8,16,32,64。這樣,我們就可以無歧義的宣告乙個16位無符號變數 uint16 t a 如果要想用printf列印這樣宣告的變數,可移植的做法是,包含...