當前位置:編程學習大全網 - 源碼下載 - vb 十進制轉換成 八進制 二進制原碼 二進制補碼 二進制反碼 程序

vb 十進制轉換成 八進制 二進制原碼 二進制補碼 二進制反碼 程序

VB.NET控制臺程序:

Module module3

Sub Main()

Dim i As Integer

Dim num As Integer = -35

Dim R As Integer = 8

Dim arr(33) As Integer

Dim len As Integer

arr = TransToR(num, R)

len = arr(0)

Console.Write(num & " 轉換成 " & R & " 進制後:" & vbTab)

If (arr(1) = 1) Then

Console.Write("-")

End If

For i = len + 1 To 2 Step -1

Console.Write(arr(i))

Next

Console.WriteLine()

arr = TransToSourceCode(num)

Console.Write(num & " 轉換成32位二進制源碼後:" & vbTab)

Console.Write(arr(1))

For i = 32 To 2 Step -1

Console.Write(arr(i))

Next

Console.WriteLine()

arr = TransToReverseCode(num)

Console.Write(num & " 轉換成32位二進制反碼後:" & vbTab)

Console.Write(arr(1))

For i = 32 To 2 Step -1

Console.Write(arr(i))

Next

Console.WriteLine()

arr = TransToCompensatoryCode(num)

Console.Write(num & " 轉換成32位二進制補碼後:" & vbTab)

Console.Write(arr(1))

For i = 32 To 2 Step -1

Console.Write(arr(i))

Next

Console.WriteLine()

End Sub

'將十進制數num轉換為R(2<=R<=9)進制數,結果存在arr數組中

'arr(0)存儲長度, arr(1)存儲符號位:1為負,0為正

Function TransToR(ByVal num As Integer, ByVal R As Integer) As Integer()

Dim arr(33) As Integer

arr(0) = 0 '初始長度

'設置符號位

If (num < 0) Then

arr(1) = 1

Else

arr(1) = 0

End If

num = Math.Abs(num)

While num > 0

arr(0) = arr(0) + 1

arr(arr(0) + 1) = num Mod R

num \= R

End While

Return arr

End Function

'將十進制數num轉換為二進制原碼

Function TransToSourceCode(ByVal num As Integer) As Integer()

Dim arr(33) As Integer

Dim i As Integer

arr = TransToR(num, 2)

'高位補零

For i = arr(0) + 2 To 32

arr(i) = 0

Next

arr(0) = 32

Return arr

End Function

'將十進制數num轉換為二進制反碼

Function TransToReverseCode(ByVal num As Integer) As Integer()

Dim arr(33) As Integer

Dim i As Integer

arr = TransToSourceCode(num)

If num >= 0 Then

Return arr

End If

'除符號位外各位取反

For i = 2 To 33

arr(i) = 1 - arr(i)

Next

Return arr

End Function

'將十進制數num轉換為二進制補碼

Function TransToCompensatoryCode(ByVal num As Integer) As Integer()

Dim arr(33) As Integer

Dim i As Integer

Dim c As Integer = 0 '進位

arr = TransToReverseCode(num)

If num >= 0 Then

Return arr

End If

'末尾加1

i = 2

arr(i) += 1

Do While True

arr(i) = c + arr(i)

c = arr(i) \ 2

arr(i) = arr(i) Mod 2

i += 1

If c < 1 Then

Exit Do

End If

Loop

Return arr

End Function

End Module

  • 上一篇:拼多多小程序怎麽關閉?如何操作?如何自己做小程序拼團(小程序拼多多怎麽退出登錄)
  • 下一篇:壹本聖人小說要連載的字數在50W以上,不算惡。
  • copyright 2024編程學習大全網