1樓:
有些運算操作是要區分有符號與無符號的情況的,比如除法,取模運算其計算語意是不同的,具體來說,有符號的除法在x86平臺上對應的彙編指令是idiv,而無符號的除法對應的則是div。而對於另外一些操作運算,則是不區分有符號與無符號的,比如,加法,減法,乘法運算。
可以通過以下**測試:
int main()
2樓:
雙目運算其實就是2元運算,需要兩個數值或變數參與的運算如+ - * / && ||等是雙目運算
而*(指標運算),&(取地址運算),!(非運算)只需一個數值或變數,稱為單目運算
c中唯一一個三目運算(x?y:z)
如果一邊為有符號型一邊為無符號型則有符號的自動轉換為無符號的,請問-1和65535進行加減乘除的時候結果是怎樣?怎麼算的?
結果和我們正常數學算出的結果一樣。演算法也一樣,這都是後臺處理好的。
會造成不一樣結果的是把帶符號整數轉成2進位制,做加減再轉回10進位制時會出現不同的結果,所以才會有補碼和反碼。
c語言中的 與或非運算
3樓:寫在楓葉上的故事
c語言中的與、或、非是c語言的邏輯運算子。
1、邏輯與
在c語言中邏輯與用&&表示。
舉例:a&&b(其中a、b都代表一個條件)如果a和b都為真,則結果為真,如果a和b中有一個條件為假,則結果為假。
2、邏輯或
在c語言中邏輯或用||表示。
舉例:a||b(其中a、b都代表一個條件)如果a和b有一個或以上為真,則結果為真,二者都為假時,結果為假。
3、邏輯非
在c語言中邏輯非用!表示。
舉例:!a(a代表一個條件)
如果a為假,則!a為真,如果a為真,則!a為假。
擴充套件資料在c 語言中的邏輯運算子及優先順序:
一元:!(邏輯非)。
二元:&&(邏輯與)、||(邏輯或)。
以上三種邏輯運算子中,邏輯非 ! 的優先順序最高,邏輯與 && 次之,邏輯或 || 優先順序最低。即算術、邏輯、賦值運算子的優先順序順序為:
邏輯非 ! >算術 > 邏輯與 &&、邏輯或 || > 賦值=
4樓:聽不清啊
邏輯與,符號為“&&”,只有兩個運算元都是真,結果才是真。 邏輯與操作屬於短路操作,既如果第一個運算元能夠決定結果,那麼就不會對第二個運算元求值。對於邏輯與操作而言,如果第一個運算元是假,則無論第二個運算元是什麼值,結果都不可能是真,相當於短路了右邊。
對於邏輯或,如果一個運算元或多個運算元為 true,則邏輯或運算子返回布林值 true;只有全部運算元為false,結果才是 false。
中文名邏輯或
外文名or
別稱邏輯相加
性質如意任意一個為真,則運算結果就為真。
定義如果任一運算元或兩個運算元為true,則邏輯“或”運算子 (||) 返回布林值true;否則返回false。運算元在計算之前隱式轉換為型別bool,結果的型別為bool。兩個運算元可以是變數、常量和表示式。
邏輯“或”具有從左向右的關聯性。
or運算子是||的等效文字。
邏輯“或”運算子的運算元不需要是同一型別,但是它們必須是整型或指標型別。運算元通常為關係或相等表示式。
第一個運算元將完全計算,並且在繼續計算邏輯“或”表示式之前將完成所有***。
僅當第一個運算元的計算結果為 false (0) 時計算第二個運算元。在邏輯“或”表示式為 true 時,這將消除對第二個運算元的不必要的計算。
在決定一事物的若干條件中,只要有一個條件能滿足時,結果就會出現;只有當所有條件都不滿足是,結果才不出現,這種因果關係就稱為“邏輯或”。
兩個開關並聯電燈電路中,兩個開關s1、s2中只要有一個閉合時,電燈el就會亮起;只有兩個開關都不閉合,電燈el才不會亮。
5樓:匿名使用者
a=b&&b=c||e=f等價於(a=b&&b=c)||e=f
6樓:匿名使用者
a b !a !b a&&b a || b真 真 假 假 真 真
真 假 假 真 假 真
假 真 真 假 假 真
假 假 真 真 假 假
7樓:匿名使用者
&&與運算時就是兩邊同時成立時為真,\\或時兩邊一個成立就是真,!非真就是假,非假就真.
運算級 !>&&>||
8樓:天賜的翅膀
用物理上的解釋就是,與是串聯,或是並聯,非是使其短路。
9樓:僑力行
|| 或 ,&&且 , !非
c語言中如何開根號運算
10樓:大野瘦子
用math.h裡封裝好的函式,具體如下:
求平方根:double sqrt(double x)
例:#include
#include
int main(void)
關於c語言的基本運算
1.加法運算子 +
int a = 10;
int b = a + 5;
在第3行利用加法運算子 + 進行了加法運算,再將和賦值給了變數b,最終變數b的值是15
2.減法運算子 或 負值運算子 -
int b = 10 - 5;
int a = -10;
1> 在第1行利用減法運算子 - 進行了減法運算,再將差賦值給了變數b,最終變數b的值是5
2> 在第3行中,這個 - 並不是什麼減法運算子,而算是一個負值運算子,-10代表的是負十
3.乘法運算子 *
int b = 10 * 5;
注意:乘法運算子並不是x或者x,而是星號*。變數b最終的值是50。
4.除法運算子 /
double a = 10.0 / 4;
double b = 10 / 4;
printf("a=%f, b=%f \n", a, b);
注意:除法運算子並不是÷,而是一個正斜槓 /
1> 第1行中的10.0是浮點型,4是整型,因此會將4自動型別提升為浮點型後再進行運算,最後變數b的值是2.5
2> 第2行中的10和4都是整型,計算機中的運算有個原則:相同資料型別的值才能進行運算,而且運算結果依然是同一種資料型別。因此,整數除於整數,求出來的結果依然是整數,會損失小數部分。
最後變數b的值是2。
5.模運算子或稱取餘運算子 %
注意:這個%並不是除號÷,它是一個取餘運算子,或者叫做模運算子。取餘的意思是,取得兩個整數相除之後的餘數。
比如,5除於2的餘數是1,5除於3的餘數是2。因此使用這個%有個原則:%兩側必須都為整數。
錯誤的寫法:1 int a = 5.0 % 2;
編譯器會直接報錯,因為5.0並非整數。
11樓:匿名使用者
在標頭檔案
自中加入#include
之後使用sqrt即可,可以用double定義舉個例子:
#include
#include
#include
double sqrt(double n);
int main(void)
12樓:餘夢石
有一個函式
傳兩個引數
一個是被開方的數字
另一個就是幾次根,這裡傳2
13樓:匿名使用者
用math.h裡封裝好的函式。見下。
求平方版根
double sqrt(double x)例:權#include
#include
int main(void)
c語言中關於左移運算問題
14樓:雲淡風輕in蘇州
a沒有變啊,b = a << 3的意思是把a左移後的結果賦值給b
就像 b = a+3; b的值是a+3但是a本身沒有加3的!
15樓:匿名使用者
a<<3 不會改變 a 的值。
c中只有++, -- 運算子會改變變數的值,其他不會 (+= 之類不算)
16樓:匿名使用者
左移運算子不是++ --運算子,本身是不會改變的呀。
1 0 3 3 c語言的問題,C語言中實型資料運算的問題!如圖 a 1 0 3 3b 3 2c 1 3 3為什麼產生這樣的結果
這個問題bai是關於不同型別du資料間混合運算的問題zhi,由於1.0是浮點dao型,回所以在計算時,答 1.0,3 被轉換為double型,即得到的結果是double型得到的結果是0.999999999999999,有 15位有效數字在輸出時,用 f格式,只輸出6位有效數字,所以結果輸出1.000...
c語言中的,c語言中的EOF
全文結束就是文字的結束,0 是字串結尾字元,在螢幕上敲的話,linux下輸入ctrl d,windows下輸入ctrl z,os下輸入f4,就能輸入eof。兩個while語句,前面乙個判斷讀取字元是否為eof,後面乙個判斷讀取字元是否為換行字元。如果敲回車的話,沒有eof,只有 r,r是回車符。全文...
關於c語言中的指標問題,關於c語言中的指標問題。
char p heir 這句話包含了2層意思,一是定義乙個指標變數p,即 char p 二是為指標變數p賦初值,即 p heir 實際是將存放字串 heir 的記憶體位址賦給p 因此這句話實際上等價於 char p p heir char p heir 這個表示定義字元指標變數p,並將存放字串 he...