ช่วงนี้ต้องจัดการข้อมูลที่เป็น binary ซึ่งบางครั้งข้อมูลอยู่ในรูปแบบ BCD ซึ่งถ้าให้เขียนเป็นเลขฐานสองโดยตรงก็จะยาว และยากต่อการอ่านเวลา debug เกินไป ดังนั้นก็เลยแปลงให้อยู่ในเลขฐานสิบหกดีกว่าเวลาต้อง debug หรือ log ข้อมูล
สำหรับ Go มี package encoding/hex
ที่มีฟังก์ชันให้เราใช้แปลงไปมาระหว่าง binary data ([]byte
) ไปเป็น hexadecimal string
ได้ง่ายๆอยู่ คือฟังก์ชัน
func EncodeToString(src []byte) string
func DecodeString(s string) ([]byte, error)
ตัวอย่างการใช้งานเช่น เมื่อเราต้องการแปลงจาก Hex ที่เป็น string กลับไปเป็น binary data
package main
import (
"encoding/hex"
"fmt"
"log"
)
func main() {
bcdNumberHex := "1234"
bcdNumberBytes, err := hex.DecodeString(bcdNumberHex)
if err != nil {
log.Fatal(err)
}
for _, b := range bcdNumberBytes {
fmt.Printf("0x%x ", b)
}
// Output:
// 0x12 0x34
}
ตัวอย่างการใช้งานเช่น เมื่อเราต้องการแปลงจาก binary data กลับไปเป็น Hex string
package main
import (
"encoding/hex"
"fmt"
)
func main() {
bcdNumberBytes := []byte{0x12, 0x34}
bcdNumberHex := hex.EncodeToString(bcdNumberBytes)
fmt.Println(bcdNumberHex)
// Output:
// 1234
}
Top comments (0)