把字符串“12341168C5B7”轉(zhuǎn)換為16進(jìn)制數(shù)存為string型
創(chuàng)新互聯(lián)公司長(zhǎng)期為數(shù)千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為永新企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站,永新網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
用shuzi=Convert.ToInt32("12341168C5B7",16)
就ok了。
反之用 shuzi.ToString("X")就行了。
給分!??!
12341168C5B7轉(zhuǎn)換成10進(jìn)制數(shù)就是20014839678391。。
而int32的最大值為2,147,483,647。。所以產(chǎn)生錯(cuò)誤。
所以要用int64,它的最大值為9,223,372,036,854,775,807。也就是16位十六進(jìn)制數(shù)0X7FFFFFFFFFFFFFFF。
難道還有比F靠后的數(shù)??????
下面代碼就是將文本框中以一個(gè)空格隔開(kāi)的十六進(jìn)制轉(zhuǎn)為字節(jié)的代碼,文本框中數(shù)字格式為:01 02 03
Dim TestArray() As String = Split(TextBox1.Text)
Dim hexBytes() As Byte
ReDim hexBytes(TestArray.Length - 1)
Dim i As Integer
For i = 0 To TestArray.Length - 1
hexBytes(i) = Val("h" TestArray(i))
Next
SerialPort.Write(hexBytes, 0, hexBytes.Length)
串口通信最終都是用二進(jìn)制傳輸?shù)?,你用代碼把二進(jìn)制轉(zhuǎn)化成十六進(jìn)制就可以了。不需要額外設(shè)置。
'此函數(shù)用于十進(jìn)制到二進(jìn)制
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
'此函數(shù)用于二進(jìn)制到十進(jìn)制
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
'====寫(xiě)入以上函數(shù)后轉(zhuǎn)值操作:
'十進(jìn)制到十六進(jìn)制:Hex(十進(jìn)制數(shù)值)
'十進(jìn)制到八進(jìn)制:Oct(十進(jìn)制數(shù)值)
'十進(jìn)制到二進(jìn)制:Bin(十進(jìn)制數(shù)值)
'二進(jìn)制到十進(jìn)制:value_Bin(二進(jìn)制數(shù)值)
'八進(jìn)制到十進(jìn)制:Val("O" 八進(jìn)制數(shù)值)
'十六進(jìn)制到十進(jìn)制:Val("H" 十六進(jìn)制數(shù)值)
比如
msgbox DEC_to_BIN(10)
就會(huì)返回一個(gè)10轉(zhuǎn)換為十進(jìn)制后的結(jié)果
或者簡(jiǎn)單點(diǎn)就用
VB自帶函數(shù):
十進(jìn)制轉(zhuǎn)八進(jìn)制:Oct(num)
十六進(jìn)制轉(zhuǎn)八進(jìn)制:oct("H" num)
十進(jìn)制轉(zhuǎn)十六進(jìn)制:hex(num)
八進(jìn)制轉(zhuǎn)十六進(jìn)制:hex("O" num)
十六進(jìn)制轉(zhuǎn)換為十進(jìn)制
Dim str As String
str = Text2.Text
Text10.Text = CLng("H" str)
在內(nèi)存中沒(méi)有所謂得16進(jìn)制或者其他進(jìn)制,數(shù)就是數(shù),什么進(jìn)制是人自己理解的,而不是計(jì)算機(jī)。你所謂的16進(jìn)制大概時(shí)你輸入的字符序列,你自己需要把這個(gè)字符序列轉(zhuǎn)換為數(shù)。
也許你要的是
Dim hex As Integer = H50 '這種定義