介绍
这期内容当中小编将会给大家带来有关利用golang怎么将[]字节转换成16进制,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
<强>将[]字节转成16进制强>
import “加密/md5" import “fmt" sign :=, md5.Sum([]字节(“date string")) signStr :=, fmt.Sprintf (“% x",,标志),//将[]字节转成16进制
<强>补充:golang[]字节存储存储的16进制转10进制强>
项目中有用[]字节存储16进制需要转到10进制,如果用系统自带的函数处理,需要先将[]字节通过hex.EncodeToString转为字符串,再用strconv。方法用于转到10进制,过程中由于两次转换导致内存分配过多(每秒执行近100 w次),GC出现错误导致进程挂掉。
自己写了一个函数来转,主要是避免出现内存泄漏:
var b2m_map 地图(字节)uint64 =,地图(字节)uint64 { 0 x00: 0, 0 x01: 1, 0 x02: 2 0 x03: 3, 0 x04: 4 5 0 x05:,, 0 x06: 6, 0 x07: 7, (:,, 0 x09: 9, 10 0 x0a:,, 0 x0b:, 11日 0 x0c: 12, 0 x0d:, 13日 0 x0e:, 14日 0 x0f: 15日 0 x10:, 16日 0 x11:, 17日 0 x12:, 18日 0 * 13:,19日 0 x14:, 20日 0 x15:, 21日 0 x16:, 22日 0 x17:, 23岁, 0 x18:, 24岁, 0 x19: 25日 0 x1a: 26日, 0 x1b:, 27日 0 x1c:, 28日 0 x1d:, 29岁, 30 0 x1e:,, 0 x1f:, 31日 0 x20: 32岁 0 x21:, 33岁 0将:,34岁 0 x23:, 35岁, 0 x24:, 36岁, 0 25:,37岁, 0 x26: 38岁 0 x27:, 39岁, 40 0 x28:,, 0 x29:, 41岁 0 x2a:, 42岁, 0 x2b:, 43岁 0 x2c:, 44岁 0 x2d:, 45岁, :表示就是0 x2e, 46岁, 0 x2f:, 47岁, 0 x30:, 48岁的 0 x31: 49岁 50 0 x32:,, 0 x33:, 51岁, 0 x34:, 52岁, 0 x35:, 53岁 0 x36:, 54岁 0 x37:, 55岁, 0 x38:, 56岁, 0 x39:, 57岁 0 x3a: 58岁 0 x3b:, 59岁 60 0 x3c:,, 61年0 x3d:,, 62年0 x3e:,, 63年0 x3f:,, 0 x40: 64年,, 0 x41: 65年,, 66年0×:,, 67年0 x43:,, 68年0 x44:,, 69年0 x45:,, 70年0 x46:,, 0开发:x47, 71年, 72年0 x48:,, 73年0 x49:,, 74年0 x4a:,, 75年0 x4b:,, 76年0 x4c:,, 77年0 x4d:,, 78年0 x4e:,, 79年0 x4f:,, 80年0×50:,, 0 x51: 81年,, 82年0 x52:,, 83年0 x53:,, 84年0 x54:,, 85年0 x55:,, 86年0 x56:,, 87年0 x57:,, 88年0 x58:,, 89年0 x59:,, 90年0 x5a:,, 91年0 x5b:,, 92年0 x5c:,, 93年0 x5d:,, 94年0 x5e:,, 95年0 x5f:,, 96年0 x60:,, 97年0 x61:,, 98年0 x62:,, 99年0 x63:,, 100年0 x64:,, 101年0 x65:,, 102年0 x66:,, 103年0 x67:,, 104年0 x68:,, 105年0 x69:,, 106年0 x6a:,, 107年0 x6b:,, 108年0 x6c:,, 109年0 x6d:,, 110年0 x6e:,, 111年0 x6f:,, 112年0 x70:,, 113年0 x71:,, 114年0 x72:,, 115年0 x73:,, 116年0 x74:,, 117年0 x75:,, 118年0 x76:,, 119年0 x77:,, 120年0 x78:,, 121年0 x79:,, 122年0 x7a:,, 123年0 x7b:,, 124年0 x7c:,, 125年0 x7d:,, 126年0 x7e:,, 0 x7f: 127年,, 0 x80: 128年,, 129年0 x81:,, 130年0 x82:,, 131年0 x83:,, 132年0 x84:,, 0 x85: 133年,, 134年0 x86:,, 135年0 x87:,, 136年0 x88:,, 137年0 x89:,, 138年0 x8a:,, 139年0 x8b:,, 140年0 x8c:,, 141年0 x8d:,, 0 x8e: 142年,, 143年0 x8f:,, 144年0 x90:,, 145年0 x91:,, 146年0 x92:,, 147年0 x93:,, 148年0 x94:,, 149年0 x95:,, 0 x96: 150年,, 151年0 x97:,, 152年0 x98:,, 153年0 x99:,, 154年0 x9a:,, 155年0 x9b:,, 156年0 x9c:,, 157年0 x9d:,, 158年0 x9e:,, 159年0 x9f:,, 160年0 xa0:,, 161年0 xa1:,, 162年0 xa2:,, 163年0 xa3:,, 164年0 xa4:,, 165年0 xa5:,, 166年0 xa6:,, 167年0 xa7:,, 168年0 xa8:,, 169年0 xa9:,, 170年0 xaa:,, 171年0 xab:,, 172年0 xac:,, 173年0 xad:,, 174年0机加区:,, 175年0 xaf:,, 176年0 xb0:,, 177年0 xb1:,, 178年0 xb2:,, 179年0 xb3:,, 180年0 xb4:,, 181年0 xb5:,, 182年0 xb6:,, 183年0 xb7:,, 184年0 xb8:,, 185年0 xb9:,, 186年0 xba:,, 187年0 xbb:,, 188年0 xbc:,, 189年0 xbd:,, 190年0 xbe:,, 191年0 xbf:,, 192年0 xc0:,, 193年0 xc1之前:,, 194年0 xc2:,, 195年0 xc3:,, 196年0 xc4:,, 197年0 xc5:,, 0 . xc6: 198年,, 199年0 xc7:,, 200年0 xc8:,, 201年0 xc9:,, 202年0 xca:,, 203年0 xcb:,, 0 xcc: 204年,, 205年0 xcd:,, 206年0 xce:,, 207年0 xcf:,, 208年0 xd0:,, 209年0 xd1:,, 210年0 xd2:,, 211年0 xd3:,, 212年0 xd4:,, 213年0 xd5:,, 214年0 xd6:,, 215年0 xd7:,, 216年0 xd8:,, 217年0 xd9:,, 218年0 xda:,, 0 xdb: 219年,, 220年0 xdc:,, 221年0 xdd:,, 222年0 xde:,, 223年0 xdf:,, 224年0 xe0:,, 225年0 xe1:,, 226年0 xe2:,, 227年0 xe3:,, 228年0 xe4:,, 229年0 xe5:,, 230年0 xe6:,, 231年0 xe7:,, 232年0 xe8:,, 233年0 xe9:,, 0 xea: 234年,, 235年0 xeb:,, 236年0 xec:,, 0中:237年,, 0 xee: 238年,, 239年0 xef:,, 240年0 xf0:,, 241年0 xf1:,, 242年0 xf2:,, 243年0 xf3:,, 244年0 xf4:,, 245年0 xf5:,, 246年0 xf6:,, 247年0 xf7:,, 248年0 xf8:,, 249年0 xf9:,, 250年0 xfa:,, 251年0 xfb:,, 252年0 xfc:,, 253年0 xfd:,, 以0 xfe: 254年,, 0 xff: 255年,, } func hex2int (hexB *[]字节),uint64 { var retInt  uint64 hexLen :=, len (* hexB) for k, v :=, range * hexB { +=retInt b2m_map [v], *,指数(16日,uint64 (2 * (hexLen-k-1))) } return retInt } func 指数(a, n uint64), uint64 { result :=, uint64 (1) for 小姐::=,n;,小姐:祝辞,0;,小姐:在祝辞=,1,{ if 打折期1,!=,0,{ result *=, } a *=, } return 结果 null null null null null null null利用golang怎么将[]字节转换成16进制