草庐IT

go - 如何使用 Golang 移位十六进制值?

假设我有一个值为4ADDF6C259EBAFF8的字符串。使用这个我想得到一个时间戳,使用公式(hex(val)>>25)+1008000400。使用encoding/hex包,我得出了以下结论:srcBytes:=[]byte(src)dst:=make([]byte,hex.EncodedLen(len(srcBytes)))hex.Encode(dst,srcBytes)在此之后,我需要一种方法将dst位移位25次,然后向其添加一个常量。但是dst是[]byte类型。我需要它是hex类型,这样我就可以在之后进行位移。如何转换[]byte以便它可以移动?

regexp.FindSubmatch 与十六进制字符代码

在某些简单的情况下,我无法使用regexp.FindSubmatch。例如,以下代码可以正常工作:assigned:=regexp.MustCompile(`\x7f`)group:=assigned.FindSubmatch([]byte{0x7f})fmt.Println(group)(inplaygrounditprints[[127]])但是如果我将字节更改为0x80它doesnotwork.为什么? 最佳答案 如前所述inthepackagedocumentation:AllcharactersareUTF-8-encod

arrays - 如何在 Go 中混合使用十六进制和字符串创建字节数组?

我正在尝试实现此处指定的数据:https://developer.valvesoftware.com/wiki/Server_queries#Request_Format我正在创建一个最终需要看起来像这样的字节数组:0xFF0xFF0xFF0xFF0x540x530x6F0x750x720x630x650x200x450x6E0x670x690x6E0x650x200x510x750x650x720x790x00分解,它只是header中的一些字节:0xFF0xFF0xFF0xFF0x54然后是零终止字符串“SourceEngineQuery”。我能够以一种非常丑陋的方式让它工作,但我

来自十六进制的 Node.js 缓冲区和 Golang 中的 readUInt16BE

我在nodejs中有这样一段代码://CreateBufferfromhexrepresentationb=newBuffer('002400050200000000320000000003847209cd4450ff94ad8c0000000002c581000001d3','hex')//Readwithoffset0b.readUInt16BE(0)//->Out:36它读取一个字符串,它是数据的十六进制表示。当读取前两个字节readUInt16BE时,将获得一个int(36)。这是预期的行为。我需要使用Go复制此行为,但我遇到了一些麻烦。1)如何从十六进制格式的字符串创建缓冲区

go - ASN.1 使用 go 结构解码 wireshark 十六进制代码

我正在尝试从tcp转储中解码以下十六进制代码。18001c3080a080800106830200e20000a28080010181010d00008301650000我尝试解码的ASN.1定义格式如下:ConnectionEstablishedReply::=SEQUENCE{messageMessageFields,nackReasonNackReasonOPTIONAL,interfaceVersionInterfaceVersion,mediatorIdINTEGER(1..65535),waitForCommitBOOLEANOPTIONAL,...}MessageFiel

go - 解码base64并将其编码为十六进制

我有以下代码解码base64,然后将其编码为十六进制。doc_id:="Can35qPeFkm9Xgmp9+aj3g=="base64_decode,err:=base64.StdEncoding.DecodeString(doc_id)iferr!=nil{log.Fatal("error:",err)}base64_decoded:=fmt.Sprintf("%q",base64_decode)fmt.Printf("base_decoded%v\n",base64_decoded)src:=[]byte(base64_decoded)fmt.Println(src)hex_enc

encoding - 从十进制转换为十六进制

我想将一个数字转换为十六进制并将结果存储在一个最大长度为4的[]byte中。这是我想出的,但感觉很迂回。packagemainimport("encoding/hex""fmt")funcmain(){hexstring:=fmt.Sprintf("%x",12345678)fmt.Println(hexstring)hexbytes,_:=hex.DecodeString(hexstring)for{iflen(hexbytes)>=4{break}hexbytes=append(hexbytes,0)}fmt.Println(hexbytes)}我认为必须有更好的方法来使用make

Go:高效地将十六进制值存储在内存中

我有两个相互关联的16字节十六进制值,我想将它们保存在Go的内存中(因此它们只需要在运行进程的生命周期内存在),可以表示为一个简单的映射,如下所示:{"aabbcc":"112233"}显然我可以将它们表示为两个字符串的结构,但我只是想知道是否有更快(即性能)或内存效率更高的方式来存储Go中的字符串?到目前为止,我只是简单地研究了Go,所以对标准库的了解还不够深,无法找到一个好的答案。编辑:了解我的意思(伪代码):我有两个来自不同来源的UUID,它们是作为字符串生成/接收的:uuid_a_1="aabb-1122-3344"uuid_a_2="ddee-5566-7788"我想存储它们

c# - 发生 System.Xml.XmlException。名称不能以 'G' 字符开头,十六进制值 0xFF27。第 44 行,位置 4

我写了一个代码来读取一个包含日语字符的xml文件。读取xml文件的代码是:DataSetxmlData=newDataSet();xmlData.ReadXml("c:\\abc.xml");但是在执行此代码时,由于xml文件包含英文字符“G”第44行,出现异常“System.Xml.XmlException”。显示的错误消息是:="名称不能以'G'字符开头,十六进制值0xFF27。第44行,位置4。"我该如何解决这个问题??下面给出了我的xml文件详细信息,包括编码描述。提前致谢,比乔。 最佳答案 那是一个FULLWIDTHLAT

c# - 如何从字符串设置 ints 十六进制文字,

我试图从xml设置文件加载十六进制文字,我可以很好地解析xml并从文件中获取所需的字符串,但我似乎无法设置一个int变量值:/代码:intPlayerBaseAddress=System.Convert.ToInt32(ConfigLoader.GetSetting("PlayerBaseAddress"));//Inputstringwasnotinacorrectformat.publicstaticstringGetSetting(stringVal){//Thisloadsfromthexmlfile,Pretenditshardcodedtoreturnastringof0x