首页 > 其他分享 >golang 使用hex包,转换文件的16进制字符、16进制字节数组

golang 使用hex包,转换文件的16进制字符、16进制字节数组

时间:2024-01-31 16:13:18浏览次数:25  
标签:0xe6 16 0xaf 0xe8 hex 字节 进制

某些特殊情况下需要根据文件的16进制转换成字符

  1. 在linux系统用vim 保存一个文件,写入两行内容
这是测试A
这是测试B
  1. 用linux 的xxd 命令输出文件的16进制字节数组
xxd -g 1 -i t.txt
unsigned char t_txt[] = {
  0xe8, 0xbf, 0x99, 0xe6, 0x98, 0xaf, 0xe6, 0xb5, 0x8b, 0xe8, 0xaf, 0x95,
  0x41, 0x0a, 0xe8, 0xbf, 0x99, 0xe6, 0x98, 0xaf, 0xe6, 0xb5, 0x8b, 0xe8,
  0xaf, 0x95, 0x42, 0x0a
};
  1. 用xxd命令输出文件的16 进制字符,其实就是将16进制前面的0x去掉,两个字节展示在一起。
xxd  t.txt
0000000: e8bf 99e6 98af e6b5 8be8 af95 410a e8bf  ............A...
0000010: 99e6 98af e6b5 8be8 af95 420a            ..........B.
  1. 复制16进制的字节数组、16进制的字符串,到golang代码。
func main() {
	byteData := []byte{
		0xe8, 0xbf, 0x99, 0xe6, 0x98, 0xaf, 0xe6, 0xb5, 0x8b, 0xe8, 0xaf, 0x95,
		0x41, 0x0a, 0xe8, 0xbf, 0x99, 0xe6, 0x98, 0xaf, 0xe6, 0xb5, 0x8b, 0xe8,
		0xaf, 0x95, 0x42, 0x0a,
	}
	// 将16进制的字节数组,转换成字符串
	fmt.Println("string", string(byteData))
	// 将16进制的字节数组,转换成16进制的字符串
	hexString := hex.EncodeToString(byteData)
	fmt.Println("EncodeToString", hexString)
        // 只复制文件内容,去掉空格
	byteStr := "e8bf99e698afe6b58be8af95410ae8bf" + "99e698afe6b58be8af95420a"
	// 将文件的16进制字符串,转换成字符串
	strByte, _ := hex.DecodeString(byteStr)
	fmt.Println(string(strByte))
}
  1. 以下是打印输出
这是测试A
这是测试B

string 这是测试A
这是测试B

EncodeToString e8bf99e698afe6b58be8af95410ae8bf99e698afe6b58be8af95420a

标签:0xe6,16,0xaf,0xe8,hex,字节,进制
From: https://www.cnblogs.com/jing1024/p/17999476

相关文章

  • 鸿蒙二进制数组创建
    背景c++层数据都是二进制,需要转换成arrayBuffer透传到ets层给业务使用,但是鸿蒙的使用下面两个api创建出来的二进制数组数据都是错误的。接口napi_create_arraybuffer:这个接口只能创建空的二进制数组,没办法把char的内容丢进去创建napi_create_external_arraybuffer:这个接口支持......
  • MySQL Shell 8.0.32 for GreatSQL编译二进制包
    MySQLShell8.0.32forGreatSQL编译二进制包构建MySQLShell8.0.32forGreatSQL0.写在前面之前已经写过一篇前传MySQLShell8.0.32forGreatSQL编译安装,最近再次编译MySQLShell二进制包时,发现了一些新问题,因此重新整理更新本文档。1.几处新问题这次编译MySQLShe......
  • 34进制转化为10进制
    最近遇到了34进制转化为10进制的问题,记录下。将34进制的字符串'H2V'转换成为10进制数,进而转换为日期。百度了下34进制的资料,记录如下:34进制指以0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F、G、H、J、K、L、M、N、P、Q、R、S、T、U、V、W、X、Y、Z为基数做累加。0-9和A-Z......
  • 播报 | 天空卫士入围FreeBuf《CCSIP 2023中国网络安全产业全景图》16个细分领域
    2024年1月24,国内安全行业门户FreeBuf旗下FreeBuf咨询正式发布《CCSIP2023中国网络安全产业全景图》(第六版)。天空卫士成功入围SASE、数据防泄露(DLP)、分类分级、数据安全治理(解决方案)、数据安全管控(平台型)、邮件安全、UEBA、Web应用扫描与监控、云访问安全、SWG、恶意内容检测、移......
  • 洛谷题单指南-暴力枚举-P1618 三连击(升级版)
    原题链接:https://www.luogu.com.cn/problem/P1618题意解读:枚举所有三位数的组合情况,判断是否符合比例。解题思路:方法一:枚举第一个数根据题意,目的是寻找三个符合比例的三位数,可以直接枚举第一个,最小是123,最大是987设第一个数为x,三个数的比例关系是a:b:c设另外两个数为y,z那么,根......
  • 30岁以上的程序员该何去何从?最高年薪160万,只看技术不看年龄
    最近关于“大龄程序员”的话题,又被推上热搜!30岁后程序员应该何去何从?有网友发帖说:我刚毕业在百度,后来在阿里呆了几年,现在快35岁了,失业一年也没有重新找到工作!然后就有网友反驳:不要制造恐慌,自己30岁投简历都能过,一个人不能代表全部,机会永远是留给有能力的人的。出现这种情况的......
  • P1699 [USACO19OPEN] Bucket Brigade B
    题目大意给一个\(10×10\)字符串矩阵,求从\(L\)开始(不经过\(R\))到\(B\)的短路径。思路这道题因为是求最短,所以用\(DFS\)比较麻烦,于是我用的是\(BFS\)做。遇到障碍则跳过,到终点直接退出就行了。code#include<iostream>usingnamespacestd;structnode{intx,y......
  • [HAOI2016] 找相同字符
    容斥原理将两个字符串拼接起来(中间用‘#’分隔开),再减去它们内部的贡献height数组支持的最长公共前缀:不仅是长度,也是子串的个数返回值开longlong核心代码与[AHOI2013]差异一致点击查看代码#include<bits/stdc++.h>usingnamespacestd;intsa[500005];intrk[20][5......
  • AP5165B 高端电流采样 36V/1A 高调光比LED恒流驱动IC SOT89-5
    产品应用原理图                                                                                  ......
  • AP5165B 高端电流采样 36V/1A 高调光比LED恒流驱动IC SOT89-5
    产品应用原理图                                                                                 ......