第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

相當于 PHP 的 pack()?

相當于 PHP 的 pack()?

Go
翻翻過去那場雪 2021-12-20 10:20:38
在 PHP 中,要對二進制數(shù)據(jù)(例如整數(shù)、浮點數(shù)等)進行編碼,我會執(zhí)行以下操作:<?php$uint32 = pack("V", 92301);$uint16 = pack("v", 65535);$float = pack("f", 0.0012);echo "uint32: " . bin2hex($uint32) . "\n"; // 8d680100echo "uint16: " . bin2hex($uint16) . "\n"; // ffffecho "float: " . bin2hex($float) . "\n"; // 52499d3a如何將此代碼帶入 Go?
查看完整描述

2 回答

?
慕慕森

TA貢獻1856條經(jīng)驗 獲得超17個贊

為什么你需要使用一個函數(shù),比如pack()在其中類型pack()已經(jīng)是語言本身的本地類型的語言中?


要編碼二進制數(shù)據(jù),您將使用包encoding/binary. 要復制您的代碼:


package main


import (

    "bytes"

    "encoding/binary"

    "fmt"

)


func main() {

    buf := new(bytes.Buffer)

    byteOrder := binary.LittleEndian


    binary.Write(buf, byteOrder, uint32(92301))

    fmt.Printf("uint32: %x\n", buf.Bytes())


    buf.Reset()

    binary.Write(buf, byteOrder, uint16(65535))

    fmt.Printf("uint16: %x\n", buf.Bytes())


    buf.Reset()

    binary.Write(buf, byteOrder, float32(0.0012))

    fmt.Printf("float: %x\n", buf.Bytes())

}


有了這個,開始編碼其他數(shù)據(jù)結構就相當容易了。您真的只需要將 的第三個參數(shù)更改為binary.Write您希望的數(shù)據(jù)類型,該函數(shù)將發(fā)揮所有作用!


查看完整回答
反對 回復 2021-12-20
?
慕姐4208626

TA貢獻1852條經(jīng)驗 獲得超7個贊

這不是一個完整的答案,但由于我自己一直在尋找以下內(nèi)容,我認為它也可以幫助其他人。


對于直接等效于 php 的 bin2hex(),您可以執(zhí)行以下操作:


import "encoding/hex"


func bin2hex(str string) string {

  return hex.EncodeToString([]byte(str))

}


查看完整回答
反對 回復 2021-12-20
  • 2 回答
  • 0 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號