久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

FreeBASIC學(xué)習(xí)筆記——第03章 運算符與表達式

 nxhujiee 2021-12-28

3.1 賦值運算

        FreeBASIC的賦值運算除了“=”以外,,還有類似C語言的運算后賦值的操作,具體運算符及其說明如表3-1所示,。

表3-1 賦值運算符及說明

運算符

說明

=

為變量賦值一個值

&=

追加并賦值一個字符串到另一個字符串,,s1 &= s2等同于s1 = s1 & s2

+=

添加并賦值給一個變量s1 += s2等同于s1 = s1 + s2

-=

減去并賦值給一個變量s1 -= s2等同于s1 = s1 - s2

*=

乘上一個變量并賦值給該變量s1 *= s2等同于s1 = s1 * s2

/=

除以一個變量并賦值給該變量 s1 /= s2等同于s1 = s1 / s2

\=

將一個變量整除并賦值給該變量 s1 \= s2等同于s1 = s1 \ s2

^=

求一個變量指數(shù)并賦值給該變量s1 ^= s2等同于s1 = s1 ^ s2

Mod=

將一個變量求余并賦值給該變量s1 Mod= s2等同于s1 = s1 Mod s2

And=

與上一個變量并賦值給該變量s1 And= s2等同于s1 = s1 And s2

Or=

或上一個變量并賦值給該變量s1 Or= s2等同于s1 = s1 Or s2

Xor=

異或上一個變量并賦值給該變量s1 Xor= s2等同于s1 = s1 Xor s2

Eqv=

同或上一個變量并賦值給該變量s1 Eqv= s2等同于s1 = s1 Eqv s2

Imp=

蘊涵上一個變量并賦值給該變量s1 Imp= s2等同于s1 = s1 Imp s2

Shl=

左移一個變量并賦值給該變量s1 Shl= s2等同于s1 = s1 Shl s2

Shr=

右移一個變量并賦值給該變量s1 Shr= s2等同于s1 = s1 Shr s2

Let

Let用于重載操作符 =(賦值)運算符,并將其與比較運算符操作符 = (Equal)區(qū)分開來,。

Let()

將用戶定義類型的字段賦值給變量列表

3.2 算術(shù)運算

        算術(shù)運算就是加,、減、乘,、除等運算,,這里需要注意除法有“/”(除)和“\”(整除)的區(qū)別,具體運算符和說明如表3-2所示,。

表3-2 算術(shù)運算符及說明

運算符

名稱

說明

+

兩個表達式相加

-

兩個表達式相減

*

兩個表達式相乘

/

兩個表達式相除(除法,,可以有小數(shù))

\

整除

兩個表達式整除(除法,沒有小數(shù))

^

求冪

求表達式的指數(shù)

Mod

求余

兩個表達式求余

-

取負(fù)

更改表達式符號(如5加上“-”后變成-5)

3.3 條件運算

        條件運算符是對表達式進行比較的運算,,結(jié)果為真(True)或假(False),,條件運算符及其說明如表3-3所示。

表3-3 條件運算符及說明

運算符

名稱

說明

=

等于

比較兩個表達式是否相等

<> 

不等于

比較兩個表達式是否不相等

小于

比較表達式是否比另一個表達式小

<=

小于等于

比較表達式是否比另一個表達式小或相等

大于

比較表達式是否比另一個表達式大

>=

大于等于

比較表達式是否比另一個表達式大或相等

Is

 

檢查對象是否與從其編譯時類型派生的類型兼容

3.4 邏輯運算

    邏輯運算有與,、或,、非、異或等運算,,具體運算符及說明如表3-4所示,。

表3-4 邏輯運算符及說明

運算符

名稱

說明

And

返回兩個數(shù)值按位與的結(jié)果,真值表如下:(有0出0,,全1出1)

表達式1

表達式2

結(jié)果

0

0

0

0

1

0

1

0

0

1

1

1

Or

返回兩個數(shù)值按位或的結(jié)果,,真值表如下:(有1出1,全0出0)

表達式1

表達式2

結(jié)果

0

0

0

0

1

1

1

0

1

1

1

1

Not

返回表達式按位非的結(jié)果,,真值表如下:

表達式1

結(jié)果

0

1

1

0

Xor

異或

返回兩個數(shù)值異或的結(jié)果,,真值表如下:(同出0,異出1)

表達式1

表達式2

結(jié)果

0

0

0

0

1

1

1

0

1

1

1

0

Eqv

等價

返回兩個數(shù)值同或的結(jié)果,,真值表如下:(同出1,,異出0)

表達式1

表達式2

結(jié)果

0

0

1

0

1

0

1

0

0

1

1

1

Imp

蘊涵

返回兩個數(shù)值蘊涵運算的結(jié)果,真值表如下:

表達式1

表達式2

結(jié)果

0

0

1

0

1

1

1

0

0

1

1

1

AndAlso

返回兩個數(shù)值邏輯與的結(jié)果,,真值表如下:

表達式1

表達式2

結(jié)果

0

任意

0

非零

0

0

非零

非零

-1

OrElse

返回兩個數(shù)值邏輯或的結(jié)果,,真值表如下:

表達式1

表達式2

結(jié)果

0

0

0

0

非零

-1

非零

任意

-1

3.5 位運算

3.5.1 位運算說明

        FreeBASIC中的與、或,、非等也可以用于位運算操作,,同時增加了位移操作,,大大增強了位運算的功能。(雖然Xor,Eqv等也屬于位操作,,由于使用較少,,此處不具體介紹),有關(guān)位操作的運算符和說明如表3-5所示,。

表3-5 位運算符及說明

運算符

名稱

說明

And

返回兩個數(shù)值按位與的結(jié)果,,真值表如下:(有0出0,全1出1)

表達式1

表達式2

結(jié)果

0

0

0

0

1

0

1

0

0

1

1

1

Or

返回兩個數(shù)值按位或的結(jié)果,,真值表如下:(有1出1,,全0出0)

表達式1

表達式2

結(jié)果

0

0

0

0

1

1

1

0

1

1

1

1

Not

返回表達式按位非的結(jié)果,真值表如下:

表達式1

結(jié)果

0

1

1

0

Shl

左移

將數(shù)字表達式的位向左移動

Shr

右移

將數(shù)字表達式的位向右移動

3.5.2 與邏輯運算比較

1,、與操作

        根據(jù)定義的數(shù)據(jù)類型不同,,編譯器會判斷與操作的類型,如果對按位與的結(jié)果進行邏輯判斷時按照非0即真的方式,。


2,、或操作

        根據(jù)定義的數(shù)據(jù)類型不同,編譯器會判斷或操作的類型,,如果對按位或的結(jié)果進行邏輯判斷時按照非0即真的方式,。


3、非操作

        按位非操作時需要注意,,由于編譯器在非操作時自動將數(shù)據(jù)轉(zhuǎn)換為Integer類型,,因而轉(zhuǎn)換后輸出結(jié)果時UByte和UShort類型會變成負(fù)數(shù),需要強制轉(zhuǎn)換才能獲得正確的結(jié)果,。由于Not是按位非(即同C語言的~,,而不是!),,所以用于邏輯判斷時,,在不確定結(jié)果時,最好轉(zhuǎn)換成布爾類型的結(jié)果后再進行非操作,,否則非零數(shù)按位非后未必為0,,如下所示,非操作的一些特殊性,。


4,、位移操作

    位移操作有Shl(左移)和Shr(右移),即變量的值向左或向右移動指定位數(shù),。

語法:Shl和Shr前為位移的變量,,后面為位移幾位。


例如:


3.6 優(yōu)先級

        FreeBASIC的優(yōu)先級如表3-6所示,,從上到下優(yōu)先級依次由高到低,,同一區(qū)塊的優(yōu)先級相同,。在程序設(shè)計時需要注意表達式的優(yōu)先級,否則會出現(xiàn)不是自己需要的結(jié)果,。對于運算符優(yōu)先級不明確的表達式,,建議將表達式的部分包含在括號中,以便盡可能減少錯誤,,并有利于讀者閱讀代碼,。

表3-6 FreeBASIC優(yōu)先級

操作者

描述

關(guān)聯(lián)性

Cast

類型轉(zhuǎn)換

N/A

ProcPtr

程序指針

N/A

StrPtr

字符串指針

N/A

VarPtr

變量指針

N/A

 

[]

字符串索引

Left-to-Right

[]

指針?biāo)饕?/p>

Left-to-Right

()

數(shù)組索引

Left-to-Right

()

函數(shù)調(diào)用

Left-to-Right

.

成員訪問

Left-to-Right

->

指向成員訪問

Left-to-Right

@

取地址

Right-to-Left

*

取數(shù)據(jù)值

Right-to-Left

New

賦值內(nèi)存

Right-to-Left

Delete

取消賦值內(nèi)存

Right-to-Left

 

^

求冪

Left-to-Right

 

-

求反

Right-to-Left

 

*

Left-to-Right

/

Left-to-Right

 

\

整除

Left-to-Right

 

MOD

求余

Left-to-Right

 

SHL

左移

Left-to-Right

SHR

右移

Left-to-Right

 

+

Left-to-Right

-

Left-to-Right

 

&

字符串連接

Left-to-Right

 

Is

運行時類型信息檢查

N/A

 

=

等于

Left-to-Right

<> 

不等于

Left-to-Right

小于

Left-to-Right

<=

小于或等于

Left-to-Right

大于

Left-to-Right

>=

大于或等于

Left-to-Right

 

NOT

求位反碼

Right-to-Left

 

AND

位邏輯與

Left-to-Right

 

OR

位邏輯或

Left-to-Right

 

EQV

等價

Left-to-Right

IMP

蘊涵

Left-to-Right

XOR

位異或

Left-to-Right

 

ANDALSO

邏輯與

Left-to-Right

ORELSE

邏輯或

Left-to-Right

 

=

賦值

N/A

&=

連接和賦值

N/A

+=

加法和賦值

N/A

-=

減法和賦值

N/A

*=

乘法和賦值

N/A

/=

除法和賦值

N/A

\=

整除和賦值

N/A

^=

指數(shù)和賦值

N/A

MOD=

求余和賦值

N/A

AND=

與和賦值

N/A

EQV=

等價和賦值

N/A

IMP=

蘊涵和賦值

N/A

OR=

或和賦值

N/A

XOR=

異或和賦值

N/A

SHL=

左移并賦值

N/A

SHR=

右移并賦值

N/A

LET

賦值

N/A

 

LET()

賦值

N/A

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多