1樓:聽不清啊
在c語言中,負的偶數向右移動1位也是除以2,負的奇數向右移動1位等於此數除以2,再減1。
2樓:
正數向右移動會小於原數,可能是負數並且帶126這三數字
c語言中的右移一位是不是應該除以2?
3樓:匿名使用者
不是c語言的有符號整數向右移位運算不等同於除以2的某次冪如(-1)/2和(-1)>>1,前者的結果一般是0,後者一般是-1,所以在c語言中,負數向右移動1位並不等同於除以2。
解決的方法是:當除數是2的n次冪時,x/(2^n),可以用移位操作(x + 2^n - 1) >> n來代替(x + 2^n - 1須小於0,^是乘方操作)
在c語言中,-100/8=-12,而-100>>3=-13,兩者不相等,而用(-100+7)>>3代替則相等。
c語言中負數除以10和正數除以10一樣嗎
4樓:匿名使用者
首先程式語言也是為了人類服務的,那麼負數除以10和正數除以10的結果肯定是不一樣的
然後資料是以二進位制在計算機中儲存的。然而,計算機並沒有單獨儲存負數的機制,所以負數都是用補碼的形式儲存的。除法的具體計算過程可以參考計算機組成原理裡面除法的計算過程
5樓:加菲貓與美人魚
跟數學一樣的,負數肯定多個負號
c語言關係運算中負數是按0還是按1
6樓:篤學博志
1、關係運算子中是判斷邏輯,而不是正負;
2、邏輯只有真假,是0即假,非0即真;
3、按你所說負數當然是真咯!
如果滿意,請採納!
7樓:
關係運算中之區分零和非零,負數是非零
8樓:尼嗎還有
非零即為真,所以負數也是真,為1
9樓:乜懋任玉蘭
0001
取反1110
符號位為1,取反+1為
1010
轉化成10進製為
-2正數的原碼,補碼,反碼都版相同,都等於它本身負數的補權碼是:符號位為1,其餘各位求反,末位加1反碼是:符號位為1,其餘各位求反,但末位不加1也就是說,反碼末位加上1就是補碼
1100110011原
1011001100反除符號位,按位取反
1011001101補除符號位,按位取反再加1正數的原反補是一樣的
在計算機中,資料是以補碼的形式儲存的:
在n位的機器數中,最高位為符號位,該位為零表示為正,為1表示為負;
其餘n-1位為數值位,各位的值可為0或1。
當真值為正時:原碼、反碼、補碼數值位完全相同;
當真值為負時:
原碼的數值位保持原樣,
反碼的數值位是原碼數值位的各位取反,
補碼則是反碼的最低位加一。
注意符號位不變。
如:若機器數是16位:
十進位制數17的原碼、反碼與補碼均為:0000000000010001十進位制數-17的原碼、反碼與補碼分別為:1000000000010001、1111111111101110、1111111111101111
在c語言中怎麼表示負數。
10樓:陌上花開
值|第一位符號位1為負,0為正。 正數的補碼和2進位制原碼是一樣的。
負數的補碼:
1、先取絕對值|x| ;
2、對|x|+1 ;
3、對|x|+1 取反,就得到它的補碼了 。
計算機中存放整型資料都是按補碼的形式存放的。
擴充套件資料:有符號數的表示方法是由硬體決定,而不是由c決定的。有三種表示方法:
1、二進位制原碼
0000 0001 表示 1
1000 0001 表示 -1
這個方法有個缺點是有兩個零: +0 和 -0。這會引起混淆,而且用兩個位組合來表示一個值也有些浪費。
2、二進位制補碼(最普遍的系統)
區別在於 singned 和 unsigned:
1)如果是無符號位元組, 1000 0000 該組合為 1282)如果是有符號位元組, 1000 0000 該組合為 -128第一種表示數的範圍是 0 ~ 255;
第二種表示數的範圍是 -128 ~ +127,對於一個二進位制補碼數取負數,最簡單的方法就是取反、加 1。
3、二進位制反碼
通過反轉位組合中的每一位以形成一個數的負數,例如:
0000 0001 表示 1
1111 1110 表示 -1
這種方式也有一個 -0:1111 1111。其範圍是 -127 ~ +127。
11樓:兮汐
1.負數在現代計算機裡一般用補碼錶示,為什麼呢?原因是:保證0的左右不矛盾
1是0001,推算出0是0000;
-1的是1111,推算出0也是0000。
如果直接用反碼(0變成1,1變成0)那麼0就會有兩個結果。
如果用第一位表示符號,後三位表示大小,那麼就有空間浪費。
2.char型別是8位,1000 0000還原為原碼:
最高位是1,表示負數,剩餘的各位取反 111 1111 再+1 得到 1000 0000, +128的原碼,整個數為-128
求採納為滿意回答。
12樓:
就直接寫啊,
舉個例子啊:
int a = 19;
int b = 0-a; 這裡b就是負數了,0-19就是 -19了。
13樓:
直接在變數b前面加-(負號)即可。
設b=5
那麼int a=-b 此時a=-5
再比如設b=-5
int a=-b 此a=5 因為它相當於int a=-(-5) 即負負得正。
14樓:d靈心
定義有符號變數 在賦值的時候前面加一個負號就行
15樓:溫暖流過時光
資料型別是有符號型別,負數就和數學裡的負數一樣。int 的取值範圍是-32768~32767,只要不越界就行
16樓:w水木清華
定義該數為浮點型,並在前面加符號即可!
17樓:匿名使用者
#include
#include
int main(void)
-b 直接寫成這樣就是了。
18樓:匿名使用者
直接乘-1就可以。b*(-1)
在c語言中,在C語言中ch c A a 是什麼意思,其中ch和c是字元
在c語言中ch c a a 的意思是,是把表示大寫字母的變數c轉換為小寫字母的語句,使用前一般要先判斷一下的,如下 if c a c z ch c a a 因為當c b 時,c a 就等於1,然後1 a 就是 b 如果事先不檢測的話,當c不是大寫字母時作這樣的轉換是會無法理解的。在c語言中ch c ...
在c語言中103並且說明,c語言中1033為什麼等於
0.333333333333333 我敲bai了15個3 c語言中除法運算有du兩種,整除zhi和實dao除,都是用除號 兩邊都是整數那就專是整除,可以理解為除屬完以後舍掉小數位取整 舍掉的,沒忘記 吧?這貨要求也是兩邊參與運算得數都得是整數 那麼什麼時候實除還用說嗎?c語言,實數預設為double...
在c語言中 char chch getchar 表示什
getchar 函式的作用是從計bai算機終端 一般du為鍵zhi盤 輸入 一個dao字元。版getchar 函式只能接收一個字元,其函式值就是從輸權入裝置得到的字元。舉個例子,用法如下 include void main char ch ch getchar 意思是將變數baich定義du為cha...