在VB中運用模運算(mod)進行求余數(shù)。
創(chuàng)新互聯(lián)公司長期為千余家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為金華企業(yè)提供專業(yè)的網(wǎng)站建設、網(wǎng)站制作,金華網(wǎng)站改版等技術(shù)服務。擁有十年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
對于整型數(shù)a,b來說,取模運算或者求余運算的方法都是:
1、求 整數(shù)商: c = a/b;
2、計算?;蛘哂鄶?shù): r = a - c*b。
求模運算和求余運算在第一步不同: 取余運算在取c的值時,向0 方向舍入;而取模運算在計算c的值時,向負無窮方向舍入。所謂向0方向舍入,就是以小數(shù)點為界限,直接將小數(shù)部分去掉。如(Int)-1.324=-1(亦叫截斷法);
而向負無窮方向舍入,就是最終結(jié)果比真實值更小。如(Int)-1.324=-2;(int此處是強制轉(zhuǎn)換數(shù)據(jù)類型)注意c是指商。
擴展資料
通常情況下取模運算(mod)和求余(rem)運算被混為一談,因為在大多數(shù)的編程語言里,都用’%’符號表示取?;蛘咔笥噙\算。在這里要提醒大家要十分注意當前環(huán)境下’%’運算符的具體意義,因為在有負數(shù)存在的情況下,兩者的結(jié)果是不一樣的。
求模運算和求余運算在第一步不同: 取模求余運算在取c的值時,向0 方向舍入(fix()函數(shù));注:fix()函數(shù)是MATLAB中的一種取整函數(shù)、截斷函數(shù),直接截取數(shù)字的整數(shù)部分。而求余取模運算在計算c的值時,向無窮小方向舍入(floor()函數(shù))。
注:floor()函數(shù)為向下取整的函數(shù)。
在vb中,取模運算與求余運算是等價的,所以求余運算符就是mod。
例:使用mod函數(shù):5
mod
4得到的結(jié)果就是余數(shù)。
一、vb算術(shù)運算符
:
^
運算符
*
運算符
/
運算符
\
運算符
mod
運算符
+
運算符
-
運算符
二、vb連接運算符:
運算符
+
運算符
asc函數(shù)
三、轉(zhuǎn)換函數(shù)
cbool函數(shù)
cbyte函數(shù)
ccur函數(shù)
cdate函數(shù)
cdec函數(shù)
cdbl函數(shù)
chr
函數(shù)
cint
函數(shù)
clng
函數(shù)
csng
函數(shù)
cstr
函數(shù)
cvar
函數(shù)
cverr
函數(shù)
format
函數(shù)
hex
函數(shù)
oct
函數(shù)
str
函數(shù)
val
函數(shù)
四、數(shù)學函數(shù)
abs
函數(shù)
atn
函數(shù)
cos
函數(shù)
exp
函數(shù)
fix
函數(shù)
int
函數(shù)
log
函數(shù)
rnd
函數(shù)
sgn
函數(shù)
sin
函數(shù)
sqr
函數(shù)
tan
函數(shù)
五、邏輯運算符
and
運算符
eqv
運算符
imp
運算符
not
運算符
or
運算符
xor
運算符
用MOD運算符。比如27除以4的余數(shù),用x表示,則:
x=27 Mod 4
運行代碼后,x的值為 3
VB中使用MOD運算求兩個整數(shù)相除的余數(shù):
例如:求27除以5的余數(shù),最簡單的方法是
27 Mod 5 就可以了。
也可以用
27 - 27 \ 5 * 5 來求得。
其中 \ 是整數(shù)除法的運算符。27 \ 5 的值就等于27除以5的商的整數(shù)部分(19 \ 10 = 1)
即是5。由于 \ 和 * 的運算優(yōu)先組長相同,所以,
27 - 27 \ 5 * 5
=27 - 5 * 5
=27 - 25
=2
在VB中,取模運算與求余運算是等價的,所以求余運算符就是Mod。
例:使用MOD函數(shù):5 mod 4得到的結(jié)果就是余數(shù)。
一、vb算術(shù)運算符 ?:
^ 運算符
* 運算符
/ 運算符
\ 運算符
Mod 運算符
+ 運算符
- 運算符
二、vb連接運算符:
運算符
+ 運算符
Asc函數(shù)
三、轉(zhuǎn)換函數(shù)
CBool函數(shù)
CByte函數(shù)
CCur函數(shù)
CDate函數(shù)
CDec函數(shù)
CDbl函數(shù)
Chr 函數(shù)
CInt 函數(shù)
CLng 函數(shù)
CSng 函數(shù)
CStr 函數(shù)
CVar 函數(shù)
CVErr 函數(shù)
Format 函數(shù)
Hex 函數(shù)
Oct 函數(shù)
Str 函數(shù)
Val 函數(shù)
四、數(shù)學函數(shù)
Abs 函數(shù)
Atn 函數(shù)
Cos 函數(shù)
Exp 函數(shù)
Fix 函數(shù)
Int 函數(shù)
Log 函數(shù)
Rnd 函數(shù)
Sgn 函數(shù)
Sin 函數(shù)
Sqr 函數(shù)
Tan 函數(shù)
五、邏輯運算符
And 運算符
Eqv 運算符
Imp 運算符
Not 運算符
Or 運算符
Xor 運算符
拉一個文本框text1,拉一個按鈕
text1內(nèi)數(shù)字合法性校驗省略,代碼如下:
Private num As Integer
Private str As String '定義表達式字符串
'以上定義全局變量,在自定義計算過程中被反復修改
Private Sub Command1_Click()
num = CInt(Text1.Text)
str = ""
Dim abcd() As String
abcd = Split("a,b,c,d", ",")
Dim Num_abcd(3) As Integer
Num_abcd(0) = 30
Num_abcd(1) = 20
Num_abcd(2) = 8
Num_abcd(3) = 5
Dim i As Integer
For i = 0 To UBound(Num_abcd)
Call myCalc(Num_abcd(i), abcd(i))
Next
If num 0 Then str = str "+" CStr(num) '如果最后num還有剩余,直接加上
MsgBox str
num = 0
str = ""
End Sub
‘自定義計算過程,返回數(shù)值和表達式
Private Sub myCalc(n As Integer, nStr As String)
If num = n Then
If str "" Then str = str "+"
str = str CStr(Int(num \ n)) "*" nStr
num = num Mod n
End If
End Sub