--- title: c/c運算式與運算式 tage: c++程式設計實習 --- # 運算式與運算式 $a+b+7+8+$ 1. 運算式:$+" = / %$ 2. 運算元:$a b‵7‵8‵c$ 3. 運算式:$a b+7+8+c$ :::success 1. 二元運算式:$+‵=‵*‵/‵$%$ 2. 單元運:$++‵--$ ::: # 算術運算式 1. 四側運算式:$+‵-‵*‵/$ 2. <font color='red'>**求餘數運算式:%(只能在整數運算中使用)**</font> - 最重要的運算式 - 有規律或週期性的運算‵2.都會使用此運算子 - 8% 3:除以3的整數為2, 所以計算結果為1 - 9% 3:可以被3整除,所以計算結果為0 - 2% 5:2除以5為0餘2,所以計算結果為2 - <font color='red'>**3,5%3:不合法,編譯會失敗(%只能在整數運算中使用)**</font> 3. 遞增‵遞減運算式:$++‵--$‵ - ++:變數把自己加1$ - --:變數把自己減1$ :::success 前置:先把自己加1或減1 之後再做運算 後置:先做運算 之後再把自己加1或減1 ::: # 關係運算式 :::success 1. <font color='red'>**運算結果只有1(true)或0(false)** </font> ::: 1. 假設i=10, j=20  :::success 1. <font color='red'>**==是比較兩個運算員是否相同的運算式 2. <font color='red'>**==:是比較兩個運算員是否相同的運算式 3. <font color='red'>**!=:是指定運算子 將右邊的質指定給左邊的變數**</font> ::: # 邏輯運算子 :::success <font color'red'>**運算結果只有1(true 所有非0的數字都可視為true)或0(fales)**</font> ::: 1. <font color='red'>**==&&(及):AND運算 11為1其餘為0**</font> 2. <font color='blue'>**==||(或):or運算 00為0其餘為1**</font> 3. <font color='green'>**==!(反):not運算 0變1 1變0**</font>  # 位元運算子 1. 位元向左移:x<<n x左移n個位元 - 先將x轉為2進為 之後從左移n個位元 右邊補n個0 - <font color='red'>**左移1位 等於原來數字第2 所以$x=x<<n即X變為x/2^n$**</font> 3. 反向: ~x 將x做反向 - 先將x轉為2進位 之後每一個位元0變1 1變0 - <font color='red'>**$x=~x x變為~(x+1)$**</font> 4. 及:x \& y y$ - 先將x與y轉為2進位 之後每一個位元1&&1為1 其餘為0 5. 或: $x | y$ - 先將X與Y轉為2進位 之後每一個位元0&&0為0 其餘為1 6. 互斥或(XOR):X^Y - 先將X與Y轉為2進位 之後每一個位元0 XOR 1為1 1XOR0為1 其餘為0  + # 指定運算 :::success <font color='red'>等好從右邊運算 運算結果指定給左邊的變數**</font> ::: 1. 等號左邊的變數必須宣告 2. 等號右邊的變數 # 複合運算子  # 運算子優先順序 1. 結合性:由左向右結合(=由右向左) 範例i=3*5>>1; - 3*5=15$ - $15>>1=7$ - $i=7 2. int i=8/2/2; - $8/2=4$ - $4/2=2$ 3. 範例 cpp=1 j=10; i=j+20*8>>1%6: ‵‵‵ - $20*8=160$ - $1\%6=1\to i=j+160>>1$ - $j+160=170$ - $i=170>>1=85$ # 優先順序表  # 不同型別資料的運算規則 :::success 1. 空間大的可以存放空間小的.小的存放大資料會流失 產生失真 2. int=unsiged=long=unsiged long=float=double=long double ::: # 強制型別轉換 1. 語法1:<Font color='Red'>**(型別)運算式;**</font> 將運算式運算結果轉換成型別的資料型態 2. 語法2:<Font color='Red'>**(型別)運算式;**</font> 將運算式運算結果轉換成型別的資料型態 3. 範例 ```cpp=1 int i=3,j=2 int x=i/j //因為x為 int 所以只能存放整數部分 小數部分全部去除 故x=1 double y=i/j//因為x i與j為 int 所以運算結果為int 只能存放整數部分小數部分 故x=1 double d=(double)i/j;//因為 將i/j運算結果為Double 所以可以存放小數點 顧d=1.5 ``` # 本章程式練習 ```cpp=1 ``` # 自我練習 1. 輸入$3$個整數,輸出它們的平均值,保留$3$位小數。 2. 輸入正整數$n$,輸出$1+2+….+n$的值。 3. 一件衣服$95$元,若消費滿$300$元,打$85$折。輸入購買衣服件數,輸出需要支付的金額。保留$2$位小數。 4. 輸入三角形$3$邊長(均為正整數),判斷能否成為直角三角形。如果可以,輸出$Yes$,如果不行,輸出$No$。如果無法成為三角形,輸出$Not\ a\ Triangle$。 5. 輸入西元年份,判斷是否為閏年。如果是,輸出$Yes$,否則輸出$No$ 。
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.