整型和字符切片转换

整数转换为字节切片思路:1.开辟一个字节集缓存区2.把整数写入到缓存区中3.将缓存区转换为字节切片注意: 方法binary.Write(io.Writer, ByteOrder, interface{})1.bytes.Buffer实现了io.Writer接口。写意味着别的数据写入自身(读则意味着自身数据放入其他地方)2.ByteOrder字节顺序3.interface{}任何类型都实现了空接口
func IntToHex(num64 int64) []byte {
	buff := new(bytes.Buffer)

	err := binary.Write(buff, binary.BigEndian, num64)
	if err != nil {
		log.Panic(err)
	}
	return buff.Bytes()
}

字节切片转换为整型
func HexToInt(data []byte) int64 {
	//先将字节切片放在Reader中
	//buffer实现了reader,但也直接可以用reader buff := bytes.NewReader(data)
	//bytes.NewReader(data)源码返回了return &Reader{data, 0, -1}
	//而Write(data)源码使用了copy,开辟新空间
	buff := new(bytes.Buffer)
	buff.Write(data)
	var numtemp int64
	//numtemp记得要传指针
	err := binary.Read(buff, binary.BigEndian, &numtemp)

	if err != nil {
		log.Panic(err)
	}
	return  numtemp
}

任意类型转换字节分片 (任意类型需是指明的占位大小 例如:int8 int16 float32......例如int不可以)

func AnyToHex(any interface{}) []byte {
	buff := new(bytes.Buffer)
	//数据写入buff
	err := binary.Write(buff, binary.BigEndian, any)
	if err != nil {
		log.Panic(err)
	}
	return buff.Bytes()
}
 
 

原文地址:https://www.cnblogs.com/zbhbc/p/9285025.html

时间: 2024-11-10 15:21:34

整型和字符切片转换的相关文章

c语言整型和字符型的自动类型转换

char a = -1; //机器码为0xff unsigned char b = 254; //机器码0xfe if (a <= b){ printf("a <= b\n"); } else{ printf("a > b\n"); } 上述代码输出结果: a > b 赋值用机器码写入内存 虽然我们以十进制为两个变量赋值,但是变量值在内存中是以二进制机器码的形式存在.如果十进制数是负数,它就以补码的形式存放在内存中.比如"a = -

整型和布尔类型的转换 &amp; 字符串详解 &amp; for循环

整型以及布尔值转换 整型 整型----数字(int)用于比较和运算 32位: -2 ** 31 - 2** 31-1 64位:-2 ** 63 - 2** 63-1 + - * / // ** % 十进制,二进制,十六进制,八进制,二进制 十进制表示方法:123456 二进制表示方法:0101 十进制--二进制(从下往上?2) 15 1 7 1 3 1 1 1 #################### 188 0 94 0 47 1 23 1 11 1 5 1 2 0 1 1 # 从下往上计算

整型和字符串相互转换

我们写程序的时候经常会遇到整型和字符串相互转换的问题,这里要用到几个函数,itoa(),atoi(),sprintf()下面来介绍下这几个函数的具体用法! itoa 功 能:把一整数转换为字符串 用 法:char *itoa(int value, char *string, int radix); 详细解释:itoa是英文integer to array(将int整型数转化为一个字符串,并将值保存在数组string中)的缩写. 参数: value: 待转化的整数. radix: 是基数的意思,即

bash-基础--数组和字符切片

      数组 什么是数组? 变量:存储单个元素的内存空间: 数组:存储多个元素的连续的内存空间: 数组名:整个数组只有一个名字: 数组索引:编号从0开始: 数组名[索引],  ${ARRAY_NAME[INDEX]} 注意:bash-4及之后的版本,支持自定义索引格式,而不仅仅是0,1,2,...数字格式: 此类数组称之为"关联数组" 声明数组: declare  -a  NAME:声明索引数组: declare  -A  NAME:声明关联数组: 数组中元素的赋值方式: (1)

Python基本数据类型之整型和布尔型

整型和布尔型 获取对象的数据类型 1.type() 2.dir() 3.help() 4.在pycharm里面的操作 数字类型 int 创建: int() 接收数字字符串 .bit_lenght() int类型的长度 布尔类型 bool 获取对象的数据类型 1.type() 查看对象的数据类型 例子:(字符串) 1.s = "abc"2.print(type(s)) 结果: 1.<class 'str'> 2.dir() 查看对象对应类具备的所有方法 1.temp = &q

Java中int类型和tyte[]之间转换及byte[]合并

JAVA基于位移的 int类型和tyte[]之间转换 [java] view plaincopy /** * 基于位移的int转化成byte[] * @param int number * @return byte[] */ public static byte[] intToByte(int number) { byte[] abyte = new byte[4]; // "&" 与(AND),对两个整型操作数中对应位执行布尔代数,两个位都为1时输出1,否则0. abyte[

synchronized/java.util.concurrent.locks.Loc/如何格式化日期/将字符“12345”转换成long型

1.简述synchronized和java.util.concurrent.locks.Lock的异同?解答:主要相同点:Lock能完成synchronized所实现的所有功能 主要不同点:Lock有比synchronized更精确的线程语义和更好的性能.synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放. 2.如何格式化日期解答:Date now=new Date();SimpleDateFormat sdf=new SimpleDate

javascript实现unicode与字符互相转换

javascript实现unicode与字符互相转换. <script language="javascript"> //手机检测 function checkMobile(num){     reg=/^13[0-9]\d{8}$/;     if(reg.test(num)){         return true;     }else{         reg=/^15[8-9]\d{8}$/;         if(reg.test(num)){         

JS 字符unicode转换函数

/**js Unicode编码转换*/ var decToHex = function(str) {    var res=[];    for(var i=0;i < str.length;i++)        res[i]=("00"+str.charCodeAt(i).toString(16)).slice(-4);    return "\\u"+res.join("\\u");}var hexToDec = function(s