將十進制轉換成十六進制的代碼如下:
創新互聯專注于河南網站建設服務及定制,我們擁有豐富的企業做網站經驗。 熱誠為您提供河南營銷型網站建設,河南網站制作、河南網頁設計、河南網站官網定制、成都微信小程序服務,打造河南網絡公司原創品牌,更為您提供河南網站排名全網營銷落地服務。
Private?Sub?Form_Click()
Const?aa?=?"8003100000918B0000000000000000000000008560"
xx?=?Val("H"??Mid(aa,?7,?8)??“”)
Text1.Text?=?xx
End?Sub
擴展資料
十六進制轉換有16進制每一位上可以是從小到大為0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F16個大小不同的數,即逢16進1,其中用A,B,C,D,E,F(字母使用大寫)這六個字母來分別表示10,11,12,13,14,15。
16進制即逢16進1,每一位上可以是從小到大為0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F共16個大小不同的數。16進制轉換即16進制與其他不同進制之間的換算轉換,常見如2進制、8進制、10進制等進制。
16進制數的第0位的權值為16的0次方,第1位的權值為16的1次方,第2位的權值為16的2次方……
所以,在第N(N從0開始)位上,如果是是數 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小為 X * 16的N次方。
例:2AF5換算成10進制:
用豎式計算:
第0位: 5 * 16^0 = 5
第1位: F * 16^1 = 240
第2位: A * 16^2= 2560
第3位: 2 * 16^3 = 8192
-------------------------------------
10997
直接計算就是:
5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997
'此函數用于十進制到二進制
Private Function Bin(Number As Long) As Long
Dim Div_value As String
Do
Div_value = (Number Mod 2) Div_value
Number = Int(Number / 2)
Loop Until Number 2
Bin = Number Div_value
End Function
'此函數用于二進制到十進制
Private Function value_Bin(Number As Long) As Long
Dim Temp_value As Long, Cyc As Long
For Cyc = 0 To Len(Str(Number))
If Cyc = Len(Str(Number)) Then
value_Bin = Temp_value + Val(Mid(Str(Number), Cyc, 1))
Exit For
End If
If Cyc 0 Then Temp_value = (Temp_value + Val(Mid(Str(Number), Cyc, 1))) * 2
Next Cyc
End Function
'====寫入以上函數后轉值操作:
'十進制到十六進制:Hex(十進制數值)
'十進制到八進制:Oct(十進制數值)
'十進制到二進制:Bin(十進制數值)
'二進制到十進制:value_Bin(二進制數值)
'八進制到十進制:Val("O" 八進制數值)
'十六進制到十進制:Val("H" 十六進制數值)
比如
msgbox DEC_to_BIN(10)
就會返回一個10轉換為十進制后的結果
或者簡單點就用
VB自帶函數:
十進制轉八進制:Oct(num)
十六進制轉八進制:oct("H" num)
十進制轉十六進制:hex(num)
八進制轉十六進制:hex("O" num)
十六進制轉換為十進制
Dim str As String
str = Text2.Text
Text10.Text = CLng("H" str)
Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load
MsgBox(DEC_to_HEX(255))
End?Sub
Public?Function?DEC_to_HEX(ByVal?Dec?As?Long)?As?String
Dim?a?As?String
DEC_to_HEX?=?""
Do?While?Dec??0
a?=?CStr(Dec?Mod?16)
Select?Case?a
Case?"10"?:?a?=?"A"
Case?"11"?:?a?=?"B"
Case?"12"?:?a?=?"C"
Case?"13"?:?a?=?"D"
Case?"14"?:?a?=?"E"
Case?"15"?:?a?=?"F"
End?Select
DEC_to_HEX?=?a??DEC_to_HEX
Dec?=?Dec?\?16
Loop
End?Function
Dim s As String = "h" Hex(Asc(Val(InputBox("輸入數值", "提示", 1))))
MsgBox(s)
10進制轉16進制的話可以使用HEX()函數,16進制轉10進制沒有現成函數,可以使用如下代碼實現:
'?用途:將十六進制轉化為十進制
'?輸入:Hex(十六進制數)
'?輸入數據類型:String
'?輸出:HEX_to_DEC(十進制數)
'?輸出數據類型:Long
'?輸入的最大數為7FFFFFFF,輸出的最大數為2147483647
Public?Function?HEX_to_DEC(ByVal?Hex?As?String)?As?Long
Dim?i?As?Long
Dim?B?As?Long
Hex?=?UCase(Hex)
For?i?=?1?To?Len(Hex)
Select?Case?Mid(Hex,?Len(Hex)?-?i?+?1,?1)
Case?"0":?B?=?B?+?16?^?(i?-?1)?*?0
Case?"1":?B?=?B?+?16?^?(i?-?1)?*?1
Case?"2":?B?=?B?+?16?^?(i?-?1)?*?2
Case?"3":?B?=?B?+?16?^?(i?-?1)?*?3
Case?"4":?B?=?B?+?16?^?(i?-?1)?*?4
Case?"5":?B?=?B?+?16?^?(i?-?1)?*?5
Case?"6":?B?=?B?+?16?^?(i?-?1)?*?6
Case?"7":?B?=?B?+?16?^?(i?-?1)?*?7
Case?"8":?B?=?B?+?16?^?(i?-?1)?*?8
Case?"9":?B?=?B?+?16?^?(i?-?1)?*?9
Case?"A":?B?=?B?+?16?^?(i?-?1)?*?10
Case?"B":?B?=?B?+?16?^?(i?-?1)?*?11
Case?"C":?B?=?B?+?16?^?(i?-?1)?*?12
Case?"D":?B?=?B?+?16?^?(i?-?1)?*?13
Case?"E":?B?=?B?+?16?^?(i?-?1)?*?14
Case?"F":?B?=?B?+?16?^?(i?-?1)?*?15
End?Select
Next?i
HEX_to_DEC?=?B
End?Function
擴展資料:
在VB中將十進制轉化為十六進制的函數:
輸入:Dec(十進制數)'
輸入數據類型:Long'
輸出:D2H(十六進制數)'
輸出數據類型:String'
輸入的最大數為2147483647,
輸出最大數為7FFFFFFFPublicFunction D2H(Dec As Long) As String
Dim a As String
D2H = ""
Do While Dec 0
a = CStr(Dec Mod 16) ? ? ? ? Select Case a ? ? ? ? ? ? Case "10": a = "A"
Case "11": a = "B"
Case "12": a = "C"
Case "13": a = "D"
Case "14": a = "E"
Case "15": a = "F"
End Select
D2H = a D2H
Dec = Dec \ 16 ? ? LoopEnd Function
把字符串“12341168C5B7”轉換為16進制數存為string型
用shuzi=Convert.ToInt32("12341168C5B7",16)
就ok了。
反之用 shuzi.ToString("X")就行了。
給分!!!
12341168C5B7轉換成10進制數就是20014839678391。。
而int32的最大值為2,147,483,647。。所以產生錯誤。
所以要用int64,它的最大值為9,223,372,036,854,775,807。也就是16位十六進制數0X7FFFFFFFFFFFFFFF。
難道還有比F靠后的數??????
網頁名稱:關于vb.nethex函數的信息
地址分享:http://vcdvsql.cn/article12/hhpsdc.html
成都網站建設公司_創新互聯,為您提供手機網站建設、服務器托管、網頁設計公司、App開發、商城網站、網站排名
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯