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;
注意:除法運算子並不是÷,而是乙個正斜槓 /
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樓:匿名使用者
左移運算子不是++ --運算子,本身是不會改變的呀。
c語言中實型資料運算的問題如圖,C語言中實型資料運算的問題! 如圖 a 1 0 3 3 b 3 2 c 1 3 3 為什麼產生這樣的結果
個人認為如此 a 1.0 3 3 1.0是浮點數,而3是整形數,所以對3進行隱式轉換到浮點型,得出的結果與3的浮點型數相乘,得1.0 b 3 2 3和2都是整形,所以相除得1,餘1,而得出的整形結果是1,放進浮點型的結果裡,所以是1.0 c 1 3 3 1和3都是整形,所以相除得0,而0 3 0,所...
c語言中的字元型的運算,在C語言中,要求運算數必須是整型或字元型的運算子是()。
include include include using namespace std void k add string a,string b,int k 將長的字串放在前面 if a.size b.size string temp a a b b temp 對源字串進行翻轉 reverse a....
C語言中的乘方演算法,C語言乘方運算
魔法師00可可 樓主可以按照這個思路做 用遞迴實現 int function int a a指數的次方 飛貓貓貓貓 int fang int a,int b a是底數,b是指數即a b 這是簡單的寫法,如果底數和指數太大還需要大整數乘法的演算法。return x 栩箭 a b,把b分成整數部分跟不大...