求問個c語言問題如圖此程式其中256是什麼

時間 2022-01-25 23:35:07

1樓:匿名使用者

快過年了,不想幹活了,幫樓主答疑吧。。

這個題目設計3個問題:

1 資料大小:

char在記憶體中佔一個位元組,取值範圍為(0~255)之間。

short在記憶體中佔二個位元組,取值範圍為(0~65535)之間。

樓主可以認為就是上圖中的一個單元格。注:這裡不討論char和byte這種有符號無符號問題,怕樓主更暈。

2 聯合體的資料存放:

聯合體中的各個資料成員對應記憶體中一塊存取區域,以最大長度的成員長度為主。看上圖中,黃色代表聯合體中的year,month,date,綠色代表byte[0~5]。這裡分成兩種顏色是標示2種資料型別在記憶體中的結構,實際在聯合體中他們是同一塊區域,也就有了對year,month,day賦值後,byte也有值的情況。

3 數值的存放:

比如上面year=2003以後,2003在記憶體中是怎麼樣存放的呢?我們知道一個單元格職能存放(0~255)之間的資料,2003明顯不夠存放,所以就要進位(放到第二個單元格),這裡進位是逢256進位的,和我們平時使用的10進位制進位類似。所以上圖中第一個格子存放的是2003%256=211,第二個格子存放的是2003/256=7。

置於聯絡題中結果-45,只是因為char型別是有符號數,只能存放(-127~127)之間,211是其一種表現形式,如果樓主不能理解,就認為是211好了。

2樓:

2^8 = 256

256是一個位元組能表示的最大值。

最關鍵的一頁沒有旋轉過來,感謝你治好了我多年的頸椎病~~~

3樓:匿名使用者

256=16*16=2^8

是一個位元組(8bit)能表示的最大整數

short佔兩個位元組,可以表示大於256的整數

4樓:匿名使用者

一個位元組8位,共有2^8=256種變化

c語言程式解釋:結果為什麼是256,求大神解釋

5樓:匿名使用者

所謂union(聯合)的意思是,前後定義的變數公用一個儲存器地址

根據stu的定義,i的地址最低位元組與c[0]共用,i的地址高1位元組與c[1]共用

6樓:匿名使用者

c是兩個位元組的陣列,一個位元組8個二進位制位,c[0]=0,c[1]=1,轉換成二進位制就是100000000,用整型輸出就是256

7樓:匿名使用者

考點是union聯合體。

union,中文名「聯合體、共用體」,在某種程度上類似結構體struct的一種資料結構,但union的成員是「互斥」的,對成員c的操作,也是對成員i的不同位置的操作。

int在傳統c(16位計算機)教材中佔用16個bit(現在普遍是32個bit,但不影響結果),而char是8個bit,因此對c[1]=1,實際上是對int的第9個bit賦值1,這樣i的二進位制表達就是100000000,也就是十進位制的256

c語言問題 50

求問個c語言問題如圖為什麼32後可以大小寫轉換

輸出的是assic碼,而assic編碼中,大小寫字母之差是32, 萵苣世家 十進位制 十六進位制 符號 十進位制 十六進位制 符號 0 0h null 64 40h 1 1h 65 41h a 2 2h 66 42h b 3 3h 67 43h c 4 4h 68 44h d 5 5h 69 45h...

求C語言程式

最大公約數 遞迴法實現 簡結效率高 int recur int x,int y 最小公倍數 兩個數的乘積除以兩者的最大公約數 int lcm int a,int b vc編譯成功 int grcomdiv int dividend int divisor compute and return div...

C語言程式問題,我的c語言程式有什麼問題?

fun x,y,1 求每一行的最小值放進y裡面 fun x,y,0 求每一行的最大值放進y裡面 伺服器 這個應該是判斷條件有問題,那個判斷形式應該是?前後返回的是判斷條件為真的時候的值,後面返回的是判斷條件不成立的時候的值,你這個寫法根本沒有改變flag的值,因為根本就沒有做賦值的操作。我的c語言程...