[英]How to convert int16 to hex-encoded string in Golang
我需要將int16的數據格式轉換為表示其十六進制值的字符串。
我嘗試了一些十六進制轉換器,但是它們更改數據而不是更改格式。 我需要它是其十六進制值的字符串表示形式。
data := (data from buffer)
fmt.Printf("BUFFER DATA : %X\n", data) // output print on screen D9DC (hex)
fmt.Println(("BUFFER DATA : ", string(data)) // output print on screen 55772 (dec)
fmt.Println(("BUFFER DATA : ", data) // output print on screen [?]
我怎樣才能轉換數據格式,以便它打印D9DC
與fmt.Println
?
由於fmt.Println
不接受格式標志,因此它將根據其類型打印每個變量。
crc16.Checksum
返回一個int16,因此fmt.Println
將顯示您的十六進制字符串的整數值55772
。
如果要fmt.Println
打印D9DC
而不是整數值,則有多種選擇。
String()
方法創建您自己的類型,該方法是整數,但在打印時由其十六進制值表示。 對於第二個選項,您的類型可能是這樣的:
type Hex int16
func (h Hex) String() string {
return strconv.FormatInt(int64(h), 16)
}
fmt.Println
將自動使用此方法,因為這意味着Hex
類型實現了Stringer
接口。 有關更多信息,請參見以下資源:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.