Binary Encoding with encoding/binary
encoding/binary bilan ikkilik kodlash
Ba'zan ma'lumotni matn emas, aynan xom sonlar (raw bytes) ko'rinishida saqlash kerak bo'ladi — bu kamroq joy egallaydi va ba'zi tizimlar tomonidan shunday kutiladi. encoding/binary sonlarni baytlarga va aksincha aylantiradi.
package main
import (
"bytes"
"encoding/binary"
"fmt"
)
func main() {
var buf bytes.Buffer
binary.Write(&buf, binary.BigEndian, int32(1000))
fmt.Println(buf.Bytes())
var n int32
binary.Read(&buf, binary.BigEndian, &n)
fmt.Println(n)
}binary.Write sonni belgilangan tartibda ("endianness") baytlarga yozadi. binary.BigEndian — "eng katta qismini birinchi yoz" degani (buni tushunish uchun hozircha shart emas, faqat bir xil dastur ichida bir xil tartibni ishlatish muhim). binary.Read esa aksi — baytlardan sonni qayta tiklaydi. Bu — tarmoq protokollari va fayl formatlarida sonlarni aniq saqlashning standart usuli.
>_ Exercise
Ikkita sonni ikkilik ko'rinishda yozib, qaytadan o'qib oling.
- •bytes.Buffer yarating
- •score (int32) qiymatini binary.Write bilan BigEndian tartibida yozing
- •uni binary.Read bilan qaytadan o'qib, songa chop eting
Stuck? Reveal a hint to help you.
Key Takeaway
Key Takeaway:
encoding/binary sonlarni aniq bayt ketma-ketligiga aylantiradi — fayl formatlari va tarmoq protokollarida keng qo'llaniladi.
NEXT UP
File I/O Capstone
$ go run main.go
Kodingizni ishga tushiring