注意只能對整型執(zhí)行按位運算。浮點值必須轉(zhuǎn)換為整型后,才能執(zhí)行按位運算。按位運算采用二進制(以 2 為基)形式計算兩個整數(shù)值。它們比較對應(yīng)位置上的位,然后基于比較的結(jié)果賦值。下面的示例演示了 And 運算符。復(fù)制Dim x As Integerx = 3 And 5 前面的示例將 x 的值設(shè)置為 1。發(fā)生這種情況的原因如下:這些值以二進制形式處理:二進制格式的 3 為 011二進制格式的 5 為 101And 運算符比較這些二進制表示方式,一次比較一個二進制位置(位)。如果給定位置的兩個位都為 1,則將 1 放在結(jié)果中的該位置。如果任何一個位是 0,則將 0 放在結(jié)果中的該位置。在前面的示例中,按如下所示計算結(jié)果:011(二進制格式的 3)101(二進制格式的 5)001(二進制格式的計算結(jié)果)計算結(jié)果以十進制形式處理。值 001 是 1 的二進制表示形式,因此 x = 1。除了在任何一個比較位是 1 或兩個比較位都是 1 的情況下將 1 賦予結(jié)果位以外,按位 Or 運算與此類似。Xor 在比較的位正好只有一個是 1(而不是兩者都是 1)時將 1 賦給結(jié)果位。Not 采用單個操作數(shù)并反轉(zhuǎn)所有位(包括符號位),然后將該值賦予結(jié)果。這意味著,對于有符號正數(shù),Not 始終返回負值,而對于負數(shù),Not 始終返回正值或零。AndAlso 和OrElse 運算符不支持按位運算。 追問: 好復(fù)雜啊...還是不會,還有整數(shù)怎么轉(zhuǎn)換為二進制數(shù)? 回答: 為什么一定要用位運算呢,你那個乘法只能通過左移操作符“ ”來進行,而左移一次代表乘以2,要是乘以一個小數(shù),就必須先化成2的n次方,不夠再用加減法調(diào)整,很麻煩啊,沒必要用位運算啊。。。 追問: 因為我要進行大量的運算,但速度要快,所有用位運算...我也不想啊.. 回答: 那就不該用VB 啊,c/c++在執(zhí)行效率上是沒話說的。 追問: 問題就是不會嘛... 回答: 那你上csdn上發(fā)帖效果應(yīng)該不錯 追問: CSDN發(fā)了,我發(fā)在高性能運算,沒人... 回答: 耐心一些,或者你應(yīng)該發(fā)到VB.NET論壇那里。。。
10年積累的網(wǎng)站制作、成都做網(wǎng)站經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站設(shè)計制作后付款的網(wǎng)站建設(shè)流程,更有宏偉免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
我們用一個比較時髦的辦法,用面向?qū)ο笏枷氚衙恳恍凶龀梢粋€類。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Class Value '聲明Value為類
REM 類的公共數(shù)據(jù)
Public Type As String '類型rb或是rf
Public ValX As Double '表第二列
Public ValY As Double '表第三列
Public Sub New(t As String, x As String, y As String) '構(gòu)造函數(shù)
Type = t '賦值
ValX = x
ValY = y
End Sub
REM 類的靜態(tài)方法,用來得出結(jié)果x=(12.1+12.4)/2+(12.2+12.3)/2
Public Shared Function SolveX(ByRef Values() As Value) As Double '以一個Value數(shù)組為參數(shù)
Dim result1 As Double = 0 '第一個加數(shù)(12.1+12.4)/2
Dim count1 As Integer = 0 'rb的個數(shù)
For Each v In Values '遍歷這個數(shù)組
If v.Type = "rb" Then '若是rb
result1 += v.ValX '先加進去
count1 += 1 '個數(shù)加一。也可以寫成count1 = count1 + 1
End If
Next
result1 /= count1 '算出第一個加數(shù)。也可以寫成result1 = result1 / count
Dim result2 As Double = 0 '依此類推,算出第二個加數(shù)
Dim count2 As Integer = 0
For Each v In Values
If v.Type = "rf" Then
result2 += v.ValX
count2 += 1
End If
Next
result2 /= count2
Return result1 + result2 '返回兩個加數(shù)的和
End Function
REM 同樣的
Public Shared Function SolveY(ByRef Values() As Value) As Double
Dim result1 As Double = 0
Dim count1 As Integer = 0
For Each v In Values
If v.Type = "rb" Then
result1 += v.ValY
count1 += 1
End If
Next
result1 /= count1
Dim result2 As Double = 0
Dim count2 As Integer = 0
For Each v In Values
If v.Type = "rf" Then
result2 += v.ValY
count2 += 1
End If
Next
result2 /= count2
Return result1 - result2
End Function
End Class
怎么使用這個類呢?
1
2
3
4
5
6
7
8
9
10
11
12
13
Dim values() As Value = {New Value("rb", 12.1, 1.1), _
New Value("rf", 12.2, 1.2), _
New Value("rf", 12.3, 1.3), _
New Value("rb", 12.4, 1.4)} '聲明一個數(shù)組values并一次放入4個Value對象
Console.WriteLine("X = {0}", Value.SolveX(values)) 'Value.SolveX(數(shù)組)表示X結(jié)果
Console.WriteLine("Y = {0}", Value.SolveY(values)) 'Value.SolveY(數(shù)組)表示Y結(jié)果
Console.ReadKey()
VB的運算順序是:先乘除、后加減,有括號的先算括號內(nèi),有負號的先算負號。
請你比較一下這個運算中x和y的值:
Dim n As Single = 4
Dim x As Single
Dim y As Single
x = n + 1
x = x / n
x = x - 1
x = Math.Sqrt(x)
y = Math.Sqrt((n + 1) / n - 1)
這樣就會發(fā)現(xiàn),你的代碼中括號的位置錯了。
正確的應(yīng)該是: Math.Sqrt((n + 1) / n - 1)
function getTime2Time($time1, $time2)
{
var time1 = arguments[0], time2 = arguments[1];
time1 = Date.parse(time1)/1000;
time2 = Date.parse(time2)/1000;
var time_ = time1 - time2;
return (time_/(3600*24));
}
document.write(getTime2Time('2016-08-02', '2016-07-02'));
分享題目:vb.net計算 vbnet計算cp cpk
文章網(wǎng)址:http://chinadenli.net/article22/hgdecc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、搜索引擎優(yōu)化、虛擬主機、建站公司、Google、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)