將整型變數每個位元組對應的值分離出來給字元陣列賦值:
方法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列印這樣宣告的變數,可移植的做法是,包含...