當前位置:首頁 » 編程語言 » c語言正負角加減法
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言正負角加減法

發布時間: 2023-06-13 16:34:09

『壹』 c語言 負數運算 請高手幫忙解釋下

-5*3=-15
5*-3=-15
-5*-3=15
這三個不解釋了吧。
-5/3=-1
5/-3=-1
-5/-3=1
這三個你這么理解,5/3=1,然後負負為正,正負為負,計算機的運算過程差不多也是這樣。
-5%3=-2
5%-3=2
-5%-3=-2
這三個也是那麼理解的,首先不管符號,然後5%3=2,然後負負為正,正負為負。。。
-5&3=3
5&-3=5
-5&-3=-7
這個是按位與,-5二進制是10000101,負數在計算機中是以補碼保存的,補碼是11111011,3是00000011,正數不用存補碼,還是原碼,按位與之後就是00000011,就是3。
5和-3按這個演算法,5原碼是00000101,-3原碼是10000011,補碼是11111101,按位與,00000101,就是5。
-5和-3,都是補碼,-5補碼是11111011,-3補碼是11111101,按位與,結果是11111001,這里要注意了,這個數的符號位為1,所以這是一個補碼,要翻譯一下,除符號位不變外,其他位減1取反,結果是10000111,就是-7。
-5<<3=-40
5<<-3=-1610612736
-5<<-3=1610612736
移位,第一個還好說,-5的補碼是11111011,左移3位,左移的過程後邊是要補兩個數的符號位的與運算的,結果就是11011000,這個數是一個負數,需要轉換一次,除符號位外-1取反,就是10101000,就是-40。
第二個和第三個比較麻煩,我以上給你說的都是按照8位的存儲說的,其實計算機真正是按照32位存儲的,也就是傳說中的32位系統,未來還會有64位系統這一說法,那一個數字就是64位了,好了,現在咱們看32位的情況。5的實際存儲為32位的,之前不提另外的0因為不影響運算結果,現在影響了,就加上。左移-3位,就是右移3位,前邊補1,也就是兩數的符號位求異或的結果,異或說白了還是負負為正,正負為負,這里補的就是1,結果就是,這個數就是-1610612736。

『貳』 加減號在c語言中怎麼表示,比如A加減B怎麼表示

作為編程語言,在運算時,一個表達式只可以有一個結果。

所以在任何的編程語言中,都不會支持±這個操作。

要實現A±B,只能分別計算A+B和A-B,並且分別將值保存在不同變數中。

如果該操作頻繁使用,可以將其封裝為函數。

如,計算a±b並存儲於參數數組c的函數可以寫作:

voidjiajian(inta,intb,intc[2])
{
c[0]=a+b;
c[1]=a-b;
}

這里的a,b,c的類型均設置為int,具體類型可以根據實際需要修改。

『叄』 C語言編寫加減計算程序

#include <stdio.h>

main (void)

{
int a,b,c;
char op;
scanf ("%d%c%d",&a,&op,&b);//最好空格去掉,這樣就可以直接寫成a+b或者a-b。如果有空格的話要記得空格也要打a + b。要不會出現錯誤 ,而且輸入的時候需要用地址符&····

if(op=='+')
{c=a+b;}

if(op=='-')
{c=a-b;}
printf("%d%c%d=%d\n",a,op,b,c);//樓主這句應該放在數據處理完後。。要不你輸出的a,op,b都是在沒處理過的數,也就是原來的值,而且最好是把,去掉,這樣更美觀 ,而且printf後面不需要&。。。切記。而且沒必要那樣輸出。請樓主看我的printf```
}

『肆』 c語言優先順序別里的 正號負號 和 加減 怎麼判斷哪個是哪個

加減號是雙目運算符,必須兩邊都有數據(變數或常數),結合性從左至右,即可簡單理解為從左至右計算。正負號是單目運算符,只有一個數據,且是右結合的,可以理解為它只作用在緊接它的右邊的數據上。如a+b、a-b中的+和-是加減號,而-x、+y中的+和-是正負號。所以它們在C語句中是很好識別的。

『伍』 誰能幫我編寫一個C語言實現負數加減乘除的程序啊。要對的

#include<stdio.h>
#include<conio.h>
void main()
{
while(1)
{
int a=0,b=0,c=0,result,key;
char d;
printf("輸入兩個整數:\n");
scanf("%d",&a);
scanf("%d",&b);
printf("選擇演算法 '+','-','*','/' \n");
scanf(" %c",&d);
printf("輸入計算結果:\n");
scanf("%d",&result);
switch(d)
{
case'+': c=a+b;break;
case'-': c=a-b;break;
case'*': c=a*b;break;
case'/': if(b>0) c=a/b;break;
}
if(result==c)
printf("回答正確!\n");
else printf("錯誤,正確答案是:%d\n",c);
printf("繼續(y) 退出(n)\n");
key =getch();
if(key=='n' || key=='N')
break;
}
}

『陸』 C語言正負數的和

您好:

這個題目是在考察循環知識,

我們採用for循環來計算1+1+2+4+...+100的和,

但是,由於是正負交替,所以我們採用一個變數來控制符號,

就是用變數temp=1,然後讓它和 -1 相乘,這樣正負就會交替了。

下面給出圖片和代碼:

#include<stdio.h>
intmain(void)
{
intn;
while(~scanf("%d",&n))
{
intsum=0,temp=1,i=1;
for(;i<=n;i++,temp*=-1)
sum+=i*temp;
printf("%d ",sum);
}
return0;
}

『柒』 c語言復數加減法如何實現輸入型如1-i或1+i的數據

你必須有一個輸入格式約定,無論簡單或復雜。
例如:必須有實部和虛部,格式 為 3-2i 1-i 1+i 等。
然後才好處理。
這里放入char str[80];了,如果是鍵盤輸入流,也用類似格式。

#include <stdio.h>
main(){
char str[80]="1-i"; // 1+i 2-2i 2+3i 0-i
int r,m;
int i,flag, s;
flag = sscanf(str,"%d%di",&r,&m);
if (flag==1) {
s = 1;
for (i=0;i<strlen(str);i++) if (str[i]=='-') s= -1; else if (str[i]=='+') s=1;
m = s;
}
printf("real=%d imag=%d\n",r,m);
return 0;
}

『捌』 C語言如何表示正負值問題

c語言有兩種數據類型,一種是整型,一種是浮點型 ,整型類型一般用的原碼表示,浮點類型一般用的IEEE754標准進行編碼。

整型數中原碼表示正負數,取最高位為符號位,以8位二進制數來表示1和-1。1的二進制為
0 000 0001 //最高位為符號位,0表示正數,1表示負數
1 000 0001 //這個表示-1

IEEE754浮點數編碼,使用的格式類似於 (-1)^s * M* 2^E,其中s是符號位,M是有效位數,E指的是指數,s符號位佔1位,如果是0,則(-1)的0次方為1,表示是一個正數,如果s位是-1,則表示是一個負數。