Golang实现的[]byte和int转化

前几天写计网的项目用了Golang,中间有一步需要把字节和int相互转化,自己写了一个转换函数,用Golang自带的 binary.LittleEndian 库实现,int转byte的数组以小端形式存储,byte转int支持长度为1/2个字节的转换,其实再长也可以做,多加几个ifelse就是了,不过没这个需求~

// IntToBytes 将int类型的数转化为字节并以小端存储
func IntToBytes(intNum int) []byte {
	uint16Num := uint16(intNum)
	buf := bytes.NewBuffer([]byte{})
	binary.Write(buf, binary.LittleEndian, uint16Num)
	return buf.Bytes()
}

// BytesToInt 将以小端存储的长为1/2字节的数转化成int类型的数
func BytesToInt(bytesArr []byte) int {
	var intNum int
	if len(bytesArr) == 1 {
		bytesArr = append(bytesArr, byte(0))
		intNum = int(binary.LittleEndian.Uint16(bytesArr))
	} else if len(bytesArr) == 2 {
		intNum = int(binary.LittleEndian.Uint16(bytesArr))
	}

	return intNum
}

妈妈我Go语言入门啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值