Plus d'Informations sur l'En-Tête de Bloc
Avant de pouvoir explorer en détail l’en-tête de bloc, il est nécessaire de comprendre la différence entre les formats big endian et little endian.
Little Endian et Big Endian
Il convient d’abord de comprendre ce que signifie réellement l’endianness.
L’endianness désigne l’ordre dans lequel les octets (chaque octet équivaut à 8 bits) sont organisés au sein de types de données plus larges dans la mémoire informatique.
Le format big endian stocke l'octet le plus significatif en premier, ce qui correspond à la manière dont les humains lisent généralement les nombres. Prenons le nombre décimal 234567890 comme exemple et convertissons-le en hexadécimal et en binaire à l'aide de Python, puis affichons les résultats :
123decimal_number = 234567890 print(hex(decimal_number)) print(bin(decimal_number))
Comme les ordinateurs stockent les entiers en utilisant un nombre entier d'octets, et que chaque 2 chiffres hexadécimaux correspondent à un octet, il nous faut un nombre pair de chiffres. La représentation hexadécimale de notre nombre, 0xDFB38D2, contient 7 chiffres, donc il faut ajouter un zéro 0 à gauche. Le nombre obtenu, 0x0DFB38D2, a maintenant 8 chiffres hexadécimaux (correspondant exactement à 4 octets) et la même valeur.
De même, notre nombre binaire comporte 28 bits, et chaque 8 bits correspondent à 1 octet, donc il faut que le nombre de bits soit divisible par 8 en ajoutant 4 zéros 0 à gauche. Le nombre obtenu, 0b00001101111110110011100011010010, a maintenant 32 bits (correspondant exactement à 4 octets) et la même valeur.
Avec Python, nous avons obtenu le format big endian, que nous aurions également obtenu en effectuant la conversion manuellement, et notre nombre se présente comme suit :
0x0DFB38D2en hexadécimal ;0b00001101111110110011100011010010en binaire.
Consultez le tableau ci-dessous pour mieux comprendre le format big endian :
Inversement, le format little endian stocke l'octet le moins significatif en premier, inversant ainsi l'ordre intuitif :
Comme vous pouvez le constater, notre nombre au format little endian s'affiche comme suit :
-
0xD238FB0Den hexadécimal ; -
0b11010010001110001111101100001101en binaire.
Retour à l'en-tête de bloc
Pour récapituler, l'en-tête fait exactement 80 octets et contient six champs de données, chacun étant au format little endian. Examinons maintenant l'en-tête du bloc 645536 :
Étant donné que l'en-tête de bloc occupe exactement 80 octets, il y a exactement 160 chiffres hexadécimaux (chaque octet correspond à 2 chiffres hexadécimaux). Le champ version, par exemple, occupe 4 octets, donc il y a 8 chiffres hexadécimaux.
Voici les informations détaillées concernant ce bloc dans l'explorateur :
Les champs ici sont affichés au format big endian. Examinons le champ bits, par exemple, et comparons-le à sa représentation dans l'en-tête de bloc. Sa représentation hexadécimale est 0x171007ea au format big endian :
Si nous le convertissons au format little endian, il apparaîtra comme suit :
Comme vous pouvez le constater, c'est exactement ce que nous avions dans l'en-tête du bloc.
1. À quoi fait référence « l'endianness » dans le contexte de la blockchain et des systèmes informatiques ?
2. Associer les composants du bloc à leurs définitions.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Can you explain why little endian is used in the block header?
How do I convert other fields from little endian to big endian?
What is the significance of the "bits" field in the block header?
Awesome!
Completion rate improved to 6.25
Plus d'Informations sur l'En-Tête de Bloc
Glissez pour afficher le menu
Avant de pouvoir explorer en détail l’en-tête de bloc, il est nécessaire de comprendre la différence entre les formats big endian et little endian.
Little Endian et Big Endian
Il convient d’abord de comprendre ce que signifie réellement l’endianness.
L’endianness désigne l’ordre dans lequel les octets (chaque octet équivaut à 8 bits) sont organisés au sein de types de données plus larges dans la mémoire informatique.
Le format big endian stocke l'octet le plus significatif en premier, ce qui correspond à la manière dont les humains lisent généralement les nombres. Prenons le nombre décimal 234567890 comme exemple et convertissons-le en hexadécimal et en binaire à l'aide de Python, puis affichons les résultats :
123decimal_number = 234567890 print(hex(decimal_number)) print(bin(decimal_number))
Comme les ordinateurs stockent les entiers en utilisant un nombre entier d'octets, et que chaque 2 chiffres hexadécimaux correspondent à un octet, il nous faut un nombre pair de chiffres. La représentation hexadécimale de notre nombre, 0xDFB38D2, contient 7 chiffres, donc il faut ajouter un zéro 0 à gauche. Le nombre obtenu, 0x0DFB38D2, a maintenant 8 chiffres hexadécimaux (correspondant exactement à 4 octets) et la même valeur.
De même, notre nombre binaire comporte 28 bits, et chaque 8 bits correspondent à 1 octet, donc il faut que le nombre de bits soit divisible par 8 en ajoutant 4 zéros 0 à gauche. Le nombre obtenu, 0b00001101111110110011100011010010, a maintenant 32 bits (correspondant exactement à 4 octets) et la même valeur.
Avec Python, nous avons obtenu le format big endian, que nous aurions également obtenu en effectuant la conversion manuellement, et notre nombre se présente comme suit :
0x0DFB38D2en hexadécimal ;0b00001101111110110011100011010010en binaire.
Consultez le tableau ci-dessous pour mieux comprendre le format big endian :
Inversement, le format little endian stocke l'octet le moins significatif en premier, inversant ainsi l'ordre intuitif :
Comme vous pouvez le constater, notre nombre au format little endian s'affiche comme suit :
-
0xD238FB0Den hexadécimal ; -
0b11010010001110001111101100001101en binaire.
Retour à l'en-tête de bloc
Pour récapituler, l'en-tête fait exactement 80 octets et contient six champs de données, chacun étant au format little endian. Examinons maintenant l'en-tête du bloc 645536 :
Étant donné que l'en-tête de bloc occupe exactement 80 octets, il y a exactement 160 chiffres hexadécimaux (chaque octet correspond à 2 chiffres hexadécimaux). Le champ version, par exemple, occupe 4 octets, donc il y a 8 chiffres hexadécimaux.
Voici les informations détaillées concernant ce bloc dans l'explorateur :
Les champs ici sont affichés au format big endian. Examinons le champ bits, par exemple, et comparons-le à sa représentation dans l'en-tête de bloc. Sa représentation hexadécimale est 0x171007ea au format big endian :
Si nous le convertissons au format little endian, il apparaîtra comme suit :
Comme vous pouvez le constater, c'est exactement ce que nous avions dans l'en-tête du bloc.
1. À quoi fait référence « l'endianness » dans le contexte de la blockchain et des systèmes informatiques ?
2. Associer les composants du bloc à leurs définitions.
Merci pour vos commentaires !