//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 互转相关推荐

  1. C++ BYTE 和 int 互转

    byte不是一种新类型,在C++中byte被定义的是unsigned char类型:但在C#里面byte被定义的是unsigned int类型 //int转byte void intToByte(in ...

  2. C++字节转换 (byte转int 互转)(BCD和HEX转换)

    2个字节short int 高低位转化: short int y=0x7f21; y = ( (y & 0xff00) >> 8) | ( (y & 0x00ff ) &l ...

  3. 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 ...

  4. Golang实现的[]byte和int转化

    前几天写计网的项目用了Golang,中间有一步需要把字节和int相互转化,自己写了一个转换函数,用Golang自带的 binary.LittleEndian 库实现,int转byte的数组以小端形式存 ...

  5. java byte转int原理_java中int与byte数组互转代码详细分析

    在java中,可能会遇到将int转成byte[]数组,或者将byte[]数组转成int的情况.下面我们来思考下怎么实现? 首先,分析int在java内存中的存储格式. 众所周知,int类型在内存中占4 ...

  6. golang byte 转writer_聊聊golang的zap的WriteSyncer

    序 本文主要研究一下golang的zap的WriteSyncer WriteSyncer zap@v1.16.0/zapcore/write_syncer.go type WriteSyncer in ...

  7. 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 ...

  8. 基于java的InputStream.read(byte[] b,int off,int len)算法学习!

    public int read(byte[] b,int off,int len)throws IOException 将输入流中最多 len 个数据字节读入字节数组.尝试读取多达 len 字节,但可 ...

  9. C++: byte和int的相互转化

    byte不是一种新类型,在C++中byte被定义的是unsigned char类型:但在C#里面byte被定义的是unsigned int类型 //int转byte void  intToByte(i ...

最新文章

  1. [sinatra] Just Do It: Learn Sinatra, Part One Darren Jones
  2. 参加web前端培训要学会哪些技能
  3. Swift之父退出核心团队,自曝原因:环境有毒!
  4. Codeforces 1016F Road Projects
  5. AI领域人才,做什么工作可以年薪百万?
  6. 我教育和科研计算机网是指,我校成为中国教育和科研计算机网湘潭城市节点单位...
  7. cx oracle 配置,cx_Oracle的配置啊。。终于搞出来了
  8. 优秀!复旦直博生一作发15篇SCI,并担任12本SCI期刊审稿人
  9. 12.swift 元祖
  10. MyBatis第3天
  11. HTML+CSS实现品优购登录界面
  12. Fuel 9.0安装的Openstack Controller节点进程整理
  13. python封装成exe后运行失败_python 在编译成EXE 文件后报错 我实在是找不出原因
  14. oracle触发器无效且未通过重新验证_更改过程或触发器中的SET选项将导致重新编译...
  15. java从入门到精通一(java开发入门)
  16. 共阳极管的代码_《手把手教你学FPGA》第三章设计实例
  17. matlab工具箱下载
  18. 差分管电路图_差分放大器的非线性应用
  19. Python数据解析笔记+实战
  20. 无人机飞控 ardupilot Copter-4.0.7 库简介

热门文章

  1. 几种USB控制器类型:OHCI,UHCI,EHCI,XHCI
  2. MDK调试STM32出现“could not stop cortex-m device”解决办法
  3. 美团全链路压测自动化实践
  4. 实验5 编写调试有多个段的程序
  5. SpringMVC+MyBatis+Redis开启二级缓存配置
  6. 等号赋值与memcpy的效率问题
  7. 自顶向下的语法分析(修改)
  8. ListView数据项隔行换色控制实现详解
  9. IKE IPSEC ×××
  10. 【推荐】ZendStudio 5.5.1 开发调试(Debug)配置说明