C語言中二個小問題

2022-12-20 06:15:14 字數 1382 閱讀 3831

1樓:蠻蠻工作室

一,肯定是最大的整數,可能是2的16或32次方減1.看你機子上int多長了,-1相當於0-1,0是全部的0組成的,像是一個電錶的錶盤的計數器,減1後是99999,這裡因為是2進位制,所以是全部的1,這樣,就成了最大的數。

二,除了定義的語句,像int a = b + c這種型別的定義語句,有等號的句子幾乎都是賦值語句,你知道k = int(a+b)即為k = sumint,第二個--i可以理解為i=i-1,所以,都可以說是正確的賦值語句。而兩個都是正確的定義。

其實這倒並不重要,如果你要進入c++的話,好好看看定義和宣告的不同。

2樓:匿名使用者

一:-1是帶符號數,所以首先應求出-1的補碼,分三步:求原碼、求反碼、求補碼。

(1)-1的原碼是1000000000000001

說明:最高位是符號位,正數的符號位為0,負數的符號位為1,其它位按照一般的方法來表示。

(2)-1的反碼是1111111111111110

說明:正數的反碼與其原碼相同,負數的反碼為其原碼除了符號位以外的各位按位取反。

(3)-1的補碼是1111111111111111

說明:正數的補碼與其原碼相同,負數的補碼為其反碼在最低位加1。

現在把-1的補碼看作無符號數的話,也就是65535(2的16次方減1)。

3樓:網友

型在16位系統中最大無符號數為1111 1111 1111 1111,即2^16-1=65535

2.--i因為沒有賦值運算子,所以不是賦值語句--,等都是算術運算子,--i這樣的語句屬算術表示式,賦值表示式定義為由賦值運算構成的表示式,賦值語句定義為賦值表示式加上;構成的語句,以上引自《其實這樣分的這麼細除了考試沒什麼意義。

4樓:匿名使用者

int"a=-1";的無符號整型 是65535 unsigned int

在記憶體是 [1]1 11 11 11 11 11 11 11符號只是第一位 決定~~~

演算法是1的補碼 (及取反加1)

-1 2的16次方就是65535

2:兩個都對~~~

5樓:混賬東西

int a=-1無符號整形值在不同位的作業系統下是不一樣的。

現在很多家用作業系統都是32位作業系統,此值可是老大了。

個人認為k=int(a+b); 與--i;都是在賦值,對方是什麼意思?我好像看過您問過這個問題。

6樓:邁步前進著

關於第二題 k=int(a+b); 是錯誤的 c++不知道是不是可以這麼寫 但是c中強制型別轉換應該是k=(int)(a+b);

7樓:網友

--i是賦值運算子,相當於 i=i-1

c語言中二維陣列行指標是什麼,C語言中二維陣列行指標是什麼

就是指向每一行的指標,比如說二維陣列a 2 3 a 0 代表的是二維陣列第零行的首地址相當於 a 0 0 a 1 代表的是二維陣列第一行的首地址相當於 a 1 0 a 0 1代表的是二維陣列第零行,第一列的地址相當於 a 0 1 行指標其實就是二級指標,也就是說它指向一個一維陣列,int a 2 3...

c語言問題 c語言中二維陣列在記憶體中怎樣儲存

嚴格意義上說不存在copy二維bai陣列,只是陣列裡的每du個元素是一個一zhi維陣列,而記憶體是一段連續dao的空間,根據你申請一個變數的順序按地址從低到高排,所以二維陣列不可能像一個矩陣那樣在記憶體中排列,這就涉及到它是按行依次往下排,還是按列往下排,而在c 中是按行,既 int a 2 2 a...

C語言的小問題,C語言的一個小問題

int型變數在系統中佔用2個位元組的儲存空間 也就是16個bit char型變數在系統中佔用1個位元組的儲存空間,1個位元組由8bit組成,也是就8個0或1組成的。這裡所謂高位就是c 1 低位就是c 0 因為系統分配記憶體時是按照c 0 c 1 的次序分配的,分配在前面的稱低位。因為是共用型,記憶體...