㈠ c語言中的原、反、補碼
c語言中,所有的整型數據實際存儲的都是補碼。要計算補碼,先要知道原碼的概念,原碼也就是一個10進制數的二進製表達方式,比如100的原碼為1100100。補碼的計算原則為:1對於無符號數以及有符號數中的正數,其補碼就是原碼本身;2對於有符號數中的負數,其補碼為真值絕對值的反碼加一,其中反碼為原碼按位取反。針對負數舉例說明:-100在用char型(8位)表示時,其補碼可以按照如下流程計算。1、100的原碼為011001002、按位取反,得到反碼為100110113、將反碼加1,即10011011+1=10011100。於是-100的補碼表示就是10011100,也就是0x9c(16進制)。㈡ 100在C語言里佔多少位元組
400個位元組。
位元組是二進制數據的單位。一個位元組通常8位長。但是,一些老型號計算機結構使用不同的長度。為了避免混亂,在大多數國際文獻中,代替byte。在多數的計算機系統中,一個位元組是一個8位長的數據單位,大多數的計算機用一個位元組表示一個字元、數字或其他字元。一個位元組也可以表示一系列二進制位。
在一些計算機系統中,4 個位元組代表一個字,這是計算機在執行指令時能夠有效處理數據的單位。一些語言描述需要2個位元組表示一個字元,雙位元組字元集。一些處理器能夠處理雙位元組或單位元組指令。位元組通常簡寫為「B」,而位通常簡寫為小寫「b」,計算機存儲器的大小通常用位元組來表示。
㈢ c語言中100是地址值 (void *)100和int sum=100;(void *)sum的區別
按你的意思100是一個地址是吧,那麼(void *)100是將100這個地址強制轉換為void*型的指針,一般用於賦給另一個指針,通過另一個指針再去訪問100這個地址中的內容。
而int sum=100;(void *)sum,是先將100這個值賦給了sum,但sum的地址是多少,那就是只有操作系統知道了,後面的(void *)sum同樣是sum所在的地址強制轉換為void*型指針用於其它指針來訪問sum所在地址的內容
㈣ c語言中%100是什麼意思
是取反的意思
比如100
100在二進制中是01100100
取反操作就是按位取反
結果是10011011
如果你定義的不是無符號的話
那麼結果是個負數
~100就是-101
所以一般情況下取反加1就是原來那個數的負數
同理
~(-100)+1就等於100