簡單的c語言問題,int a 13,表示式a《2等於多少具體怎麼算的

2021-03-27 08:22:37 字數 1104 閱讀 7685

1樓:匿名使用者

我以前也沒怎麼搞明白,順便自己研究了下,大家共同進步哈!

(int佔4位元組的情況計算出得結果是一樣的)

1.方法

先轉換成對應的2進位制(int型在計算機中是4位元組,這裡以2位元組位例,具體佔自己數看計算機)

2.具體步驟

00000000 00001101(13對應的2進位制)

11111111 11110010 (取反)

11111111 11001000 (左移2位,這個是計算機中儲存的真實內容)

3.關於計算機的儲存(補碼):

在計算機系統中,數值一律用補碼來表示(儲存)。

主要原因:使用補碼,可以將符號位和其它位統一處理;同時,減法也可按加法來處理。另外,兩個用補碼錶示的數相加時,如果最高位(符號位)有進位,則進位被捨棄。

(1)如果補碼的符號位為「0」,表示是一個正數,所以補碼就是該數的原碼。

(2)如果補碼的符號位為「1」,表示是一個負數,求原碼的操作可以是:符號位為1,其餘各位取反,然後再整個數加1。

因為上述結果首位為1,所以是個負數。他的原碼(即真實值)是首位不變,其他位取反再加1

取反:10000000 00110111

加1:10000000 00111000(左邊1是符號位,1表示為負,111000轉換成10進位制就是-56)

所以答案是-56

(我覺得補碼的原因,因為有符號位。1000 和0000那是表示+0和-0,計算時會引起混亂)

2樓:3路河口下

13取反:11110010

後左移2位:11001000

c語言裡 0*13^0*17這個表示式的值是多少,什麼意思,怎麼算的

3樓:禾勹彐心

^ -----按位異或(xor)是一種可逆運算子,只有在兩個比較的位不同時其結果是1,否則結果為0。因此在計算時應先將數值轉為二進位制,進行位比較,然後把所得的結果轉換為原來的進位制數。如下例:

3^ 5 =011 ^ 101=110 =6。所以你上面表示式是0^0=0.

4樓:曼寒

0,先計算13^0,然後再相乘。

c語言問題 int a 210,20,30,40,50,60p p a則p 2 1 的值為多少

結果60 指標p指向的是0號行,也就是a 0 p 2 a 2 p 2 1 a 2 1 p 2 1 對應陣列元素a 2 1 因此值為 60。我也看不懂,誰來講講啊?c語言的問題 int a 3 4 1,2,3,4,5,6,7,8,9,10,11,12 int p 4 p a 因為p 0 和p 1 分別...

簡單的C語言問題,一個簡單的C語言問題

列舉型別中,後面變數值是前面變數的值加1 如basic 3,則assembly 4 同樣 ada 100,則cobol 101,fortran 102 如果一個值沒有給定,就是它前一個變數值 1,ada 100,所以cobol 101,fortran 102 不完整。像是定義一個列舉變數並賦值。1。...

c語言簡單問題

可以檢視msdn srand 是初始化一個種子,就是說隨機數是從哪個數開始,常以系統內時間來初始化,即 srand unsigned time null randomize 是vbscript or pascal中的函式,容也是初始化的作用,預設是以系統時間為種子的,這是delphi help中的解...