答案:47
解析:b=a*2;計算時需要先把a轉換為整型,然後再與2相乘,計算出結果的後8位再賦給b。
編輯器只所以這樣做,主要是適應各種型別的資料,而計算結果的正確與否,是否越界,是程式設計師的事情。
unsigned char是無符號位元組型,char型別變數的大小通常為1個位元組(1位元組=8個位),且屬於整型。unsigned char 0-255,char
-128-127.整型的每一種都有無符號(unsigned)和有符號(signed)兩種型別(float和double總是帶符號的),在預設情況下宣告的整型變數都是有符號的型別(char有點特別),如果需宣告無符號型別的話就需要在型別前加上unsigned。無符號版本和有符號版本的區別就是無符號型別能儲存2倍於有符號型別的資料,比如16位系統中乙個int能儲存的資料的範圍為-32768~32767,而unsigned能儲存的資料範圍則是0~65535。
優先順序和型別轉換分析
易錯的優先順序 c語言隱式型別轉換 算術表示式中,低型別轉換為高型別 賦值表示式中,表示式的值轉換為左邊變數的型別 函式呼叫時,實參轉換為形參的型別 函式返回值,return表示式轉換為返回值型別 例1char c c short s 0 s c printf d n sizeof s c 輸出為4...
型別強制轉換符 與 符的優先順序
移植 gcc 到 vs2008 時,犯了乙個關於型別強制轉換符 與 符的優先順序錯誤。共有的示例 如下 也就是問題的條件 1 char carraytest 10 2 unsigned short pustest null 3 unsigned short pustest2 null 45 for ...
運算優先順序 型別轉換
運算子優先順序 混合運算時資料型別的轉換 一些二元運算子 算術運算子 關係運算子 邏輯運算子 位運算子和賦值運算子 要求兩個運算元的型別一致,在算術運算和關係運算中如果參與運算的運算元型別不一致,編譯系統會自動對資料進行轉換 即隱含轉換 基本原則是將低型別資料轉換為高型別資料 混合運算時資料型別的轉...