golang []byte 和 int 互转
//isSymbol表示有无符号
func BytesToInt(b []byte, isSymbol bool) (int, error){if isSymbol {return bytesToIntS(b)}return bytesToIntU(b)
}//字节数(大端)组转成int(无符号的)
func bytesToIntU(b []byte) (int, error) {if len(b) == 3 {b = append([]byte{0},b...)}bytesBuffer := bytes.NewBuffer(b)switch len(b) {case 1:var tmp uint8err := binary.Read(bytesBuffer, binary.BigEndian, &tmp)return int(tmp), errcase 2:var tmp uint16err := binary.Read(bytesBuffer, binary.BigEndian, &tmp)return int(tmp), errcase 4:var tmp uint32err := binary.Read(bytesBuffer, binary.BigEndian, &tmp)return int(tmp), errdefault:return 0,fmt.Errorf("%s", "BytesToInt bytes lenth is invaild!")}
}//字节数(大端)组转成int(有符号)
func bytesToIntS(b []byte) (int, error) {if len(b) == 3 {b = append([]byte{0},b...)}bytesBuffer := bytes.NewBuffer(b)switch len(b) {case 1:var tmp int8err := binary.Read(bytesBuffer, binary.BigEndian, &tmp)return int(tmp), errcase 2:var tmp int16err := binary.Read(bytesBuffer, binary.BigEndian, &tmp)return int(tmp), errcase 4:var tmp int32err := binary.Read(bytesBuffer, binary.BigEndian, &tmp)return int(tmp), errdefault:return 0,fmt.Errorf("%s", "BytesToInt bytes lenth is invaild!")}
}//整形转换成字节
func IntToBytes(n int,b byte) ([]byte,error) {switch b {case 1:tmp := int8(n)bytesBuffer := bytes.NewBuffer([]byte{})binary.Write(bytesBuffer, binary.BigEndian, &tmp)return bytesBuffer.Bytes(),nilcase 2:tmp := int16(n)bytesBuffer := bytes.NewBuffer([]byte{})binary.Write(bytesBuffer, binary.BigEndian, &tmp)return bytesBuffer.Bytes(),nilcase 3,4:tmp := int32(n)bytesBuffer := bytes.NewBuffer([]byte{})binary.Write(bytesBuffer, binary.BigEndian, &tmp)return bytesBuffer.Bytes(),nil}return nil,fmt.Errorf("IntToBytes b param is invaild")
}
golang []byte 和 int 互转相关推荐
- C++ BYTE 和 int 互转
byte不是一种新类型,在C++中byte被定义的是unsigned char类型:但在C#里面byte被定义的是unsigned int类型 //int转byte void intToByte(in ...
- C++字节转换 (byte转int 互转)(BCD和HEX转换)
2个字节short int 高低位转化: short int y=0x7f21; y = ( (y & 0xff00) >> 8) | ( (y & 0x00ff ) &l ...
- python byte 和 list[int]互转(byte to list,list to byte,byte to int)
在一些图像处理中,一个像素用8位,即一个byte. 串口通讯中也需要byte格式传输数据 如何用byte和int,应该是number互转. byte to list:list(bytes(buffer ...
- Golang实现的[]byte和int转化
前几天写计网的项目用了Golang,中间有一步需要把字节和int相互转化,自己写了一个转换函数,用Golang自带的 binary.LittleEndian 库实现,int转byte的数组以小端形式存 ...
- java byte转int原理_java中int与byte数组互转代码详细分析
在java中,可能会遇到将int转成byte[]数组,或者将byte[]数组转成int的情况.下面我们来思考下怎么实现? 首先,分析int在java内存中的存储格式. 众所周知,int类型在内存中占4 ...
- golang byte 转writer_聊聊golang的zap的WriteSyncer
序 本文主要研究一下golang的zap的WriteSyncer WriteSyncer zap@v1.16.0/zapcore/write_syncer.go type WriteSyncer in ...
- java write_java中write(byte[] b)与write(byte[] b,int off,int len)区别
在项目中要上传文件或者图片 private static final int BUFFER_SIZE = 16 * 1024; private static void copy(File src, F ...
- 基于java的InputStream.read(byte[] b,int off,int len)算法学习!
public int read(byte[] b,int off,int len)throws IOException 将输入流中最多 len 个数据字节读入字节数组.尝试读取多达 len 字节,但可 ...
- C++: byte和int的相互转化
byte不是一种新类型,在C++中byte被定义的是unsigned char类型:但在C#里面byte被定义的是unsigned int类型 //int转byte void intToByte(i ...
最新文章
- [sinatra] Just Do It: Learn Sinatra, Part One Darren Jones
- 参加web前端培训要学会哪些技能
- Swift之父退出核心团队,自曝原因:环境有毒!
- Codeforces 1016F	Road Projects
- AI领域人才,做什么工作可以年薪百万?
- 我教育和科研计算机网是指,我校成为中国教育和科研计算机网湘潭城市节点单位...
- cx oracle 配置,cx_Oracle的配置啊。。终于搞出来了
- 优秀!复旦直博生一作发15篇SCI,并担任12本SCI期刊审稿人
- 12.swift 元祖
- MyBatis第3天
- HTML+CSS实现品优购登录界面
- Fuel 9.0安装的Openstack Controller节点进程整理
- python封装成exe后运行失败_python 在编译成EXE 文件后报错 我实在是找不出原因
- oracle触发器无效且未通过重新验证_更改过程或触发器中的SET选项将导致重新编译...
- java从入门到精通一(java开发入门)
- 共阳极管的代码_《手把手教你学FPGA》第三章设计实例
- matlab工具箱下载
- 差分管电路图_差分放大器的非线性应用
- Python数据解析笔记+实战
- 无人机飞控 ardupilot Copter-4.0.7 库简介