三、賦值語(yǔ)句中的數(shù)據(jù)類(lèi)型轉(zhuǎn)換
類(lèi)型轉(zhuǎn)換是指不同類(lèi)型的變量混用時(shí)的類(lèi)型改變。
在賦值語(yǔ)句中, 類(lèi)型轉(zhuǎn)換規(guī)則是:
等號(hào)右邊的值轉(zhuǎn)換為等號(hào)左邊變量所屬的類(lèi)型。
例如:
main()
{
int i, j; /*定義整型變量*/
float f, g=2.58; /*定義浮點(diǎn)型變量*/
f=i*j; /*i與j的乘積是整型數(shù), 被轉(zhuǎn)換成為浮點(diǎn)數(shù)賦給f*/
i=g; /*g中的浮點(diǎn)型數(shù)轉(zhuǎn)換成為整型數(shù)賦給i*/
...
}
由于Turbo C按上述數(shù)據(jù)類(lèi)型轉(zhuǎn)換規(guī)則, 因此在作除法運(yùn)算時(shí)應(yīng)特別注意。
例如:
main()
{
float f;
int i=15;
f=i/2;
}
上面程序經(jīng)運(yùn)行后, f=7并不等于準(zhǔn)確值7.5。正確的程序應(yīng)該是:
main()
{
float f;
int i=15;
f=i/2.0;
}
也可直接將i定義為浮點(diǎn)數(shù)。
5.2 關(guān)系運(yùn)算符和邏輯運(yùn)算符
一、邏輯運(yùn)算符
邏輯運(yùn)算符是指用形式邏輯原則來(lái)建立數(shù)值間關(guān)系的符號(hào)。
Turbo C的邏輯運(yùn)算符如下:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
操作符 作用
─────────────────────────────
&& 邏輯與
|| 邏輯或
! 邏輯非
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
二、關(guān)系運(yùn)算符
關(guān)系運(yùn)算符是比較兩個(gè)操作數(shù)大小的符號(hào)。
Turbo C的關(guān)系運(yùn)算符如下:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
操作符 作用
─────────────────────────────
> 大于
>= 大于等于
< 小于
<= 小于等于
== 等于
!= 不等于
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
關(guān)系運(yùn)算符和邏輯運(yùn)算符的關(guān)鍵是真(true)和假(false)的概念。Turbo C中true可以是不為0的任何值, 而false則為0。 使用關(guān)系運(yùn)算符和邏輯運(yùn)算符表達(dá)式時(shí), 若表達(dá)式為真(即true)則返回1, 否則, 表達(dá)式為假(即false), 則返回0。
例如:
100>99 返回1
10>(2+10) 返回0
!1&&0 返加0
對(duì)上例中表達(dá)式!1&&0, 先求!1和先求1&&0將會(huì)等于出不同的結(jié)果, 那么何者優(yōu)先呢? 這在Turbo C中是有規(guī)定的。 有關(guān)運(yùn)算符的優(yōu)先級(jí)本節(jié)后面將會(huì)講到。
5.3 按位運(yùn)算符
Turbo C和其它高級(jí)語(yǔ)言不同的是它完全支持按位運(yùn)算符。這與匯編語(yǔ)言的位操作有些相似。
Turbo C中按位運(yùn)算符有:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
操作符 作用
────────────────────────────
& 位邏輯與
| 位邏輯或
^ 位邏輯異或
- 位邏輯反
>> 右移
<< 左移
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
按位運(yùn)算是對(duì)字節(jié)或字中的實(shí)際位進(jìn)行檢測(cè)、設(shè)置或移位, 它只適用于字符型和整數(shù)型變量以及它們的變體, 對(duì)其它數(shù)據(jù)類(lèi)型不適用。
關(guān)系運(yùn)算和邏輯運(yùn)算表達(dá)式的結(jié)果只能是1或0。 而按位運(yùn)算的結(jié)果可以取0或1以外的值。
要注意區(qū)別按位運(yùn)算符和邏輯運(yùn)算符的不同, 例如, 若x=7, 則x&&8 的值為真(兩個(gè)非零值相與仍為非零), 而x&8的值為0。
移位運(yùn)算符">>"和"<<"是指將變量中的每一位向右或向左移動(dòng), 其通常形式為:
右移: 變量名>>移位的位數(shù)
左移: 變量名<<移位的位數(shù)
經(jīng)過(guò)移位后, 一端的位被"擠掉", 而另一端空出的位以0 填補(bǔ), 所以, Turbo C中的移位不是循環(huán)移動(dòng)的。
相關(guān)推薦:計(jì)算機(jī)等考二級(jí)C語(yǔ)言備考:C語(yǔ)言/C++編譯過(guò)程北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |