GoDasturchi
Binary Encoding with encoding/binary

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.

example.go
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.

Hints (0/3)

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

OUTPUT

$ go run main.go
Kodingizni ishga tushiring

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.

example.go
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.

Hints (0/3)

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