熟悉Linux操作系统 C/C++ Golang Python Bash 程序设计
==业务联系 QQ[3324729792] ==
Golang BCD码和string互转
package main
import (
"fmt"
"strconv"
"strings"
)
func main() {
TestBcd2Number()
}
func TestBcd2Number() {
bcd := Hex2Byte("ffff1012")
fmt.Printf("bcd: %xn", bcd)
number := Bcd2Number(bcd)
fmt.Printf("bcd2number: %vn", number)
b := Number2bcd(number)
fmt.Printf("number2bcd: %xn", b)
}
func Bcd2Number(bcd []byte) string {
var number string
for _, i := range bcd {
number += fmt.Sprintf("%02X", i)
}
pos := strings.LastIndex(number,"F")
if pos == 8 {
return "0"
}
return number[pos + 1:]
}
func Number2bcd(number string) []byte {
var rNumber = number
for i := 0; i < 8 - len(number); i++ {
rNumber = "f" + rNumber
}
bcd := Hex2Byte(rNumber)
return bcd
}
func Hex2Byte(str string) []byte {
slen := len(str)
bHex := make([]byte, len(str)/2)
ii := 0
for i := 0; i < len(str); i = i + 2 {
if slen != 1 {
ss := string(str[i]) + string(str[i+1])
bt, _ := strconv.ParseInt(ss, 16, 32)
bHex[ii] = byte(bt)
ii = ii + 1
slen = slen - 2
}
}
return bHex
}
运行结果:
原文链接: https://www.cnblogs.com/coding-space/p/13750862.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/203447
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!