Sobes.tech
Junior — Middle

Εξηγήστε την αρχή εμφάνισης των bytes με σειρά little-endian στη μνήμη του υπολογιστή.

sobes.tech AI

Απάντηση από AI

Σε μικρότερη-endian σειρά, το λιγότερο σημαντικό byte ενός αριθμού αποθηκεύεται στη χαμηλότερη διεύθυνση μνήμης, και το πιο σημαντικό — στη μεγαλύτερη. Για παράδειγμα, ο 32-bit αριθμός 0x12345678 στη μνήμη θα τοποθετηθεί ως ακολουθία bytes: 0x78, 0x56, 0x34, 0x12.

Αυτό σημαίνει ότι διαβάζοντας bytes από τη χαμηλότερη διεύθυνση, λαμβάνουμε πρώτα το λιγότερο σημαντικό byte του αριθμού. Αυτή η σειρά είναι βολική για ορισμένες λειτουργίες και χρησιμοποιείται σε αρχιτεκτονικές x86.

Παράδειγμα σε Go για να δείξουμε πώς γράφουμε έναν αριθμό σε little-endian:

package main

import (
	"encoding/binary"
	"fmt"
)

func main() {
	var num uint32 = 0x12345678
	buf := make([]byte, 4)
	binary.LittleEndian.PutUint32(buf, num)
	fmt.Printf("% x\n", buf) // Εμφανίζει: 78 56 34 12
}