je un réseau de unsigned chars
. Fondamentalement, j'ai un tableau de bits.C++ types de données primitives: lire non signé 30 bits
je sais que les 16 premiers bits correspond à un entier non signé et je récupérer sa valeur en utilisant (u16)(*(buffer+ 1) << 8 | *abcBuffer)
Puis vient un type de données appelé u30
qui est décrit comme suit: . La variable codage pour u30 utilise un à cinq octets, en fonction de l'amplitude de la valeur codée. Chaque octet attribue ses sept bits inférieurs à la valeur. Si le huitième octet d'un octet est défini, l'octet suivant fait également partie de la valeur.
Je ne comprends pas cette description: il est dit u30
(trente ans!) Et il dit 1 à 5 octets? J'ai aussi un autre type de données appelé s24 - three-byte signed integer value.
Comment doit-on lire (récupérer leurs valeurs) ces types de données non typiques? Toute aide serait appréciée.
Merci beaucoup!
Il est 1 à 5 octets parce que vous utilisez seulement 7 bits de chaque octet, donc 4 octets ne peut représenter 28 bits; vous avez besoin de tous les 5 octets pour représenter une valeur de 30 bits. –
D'où cela vient-il? Certaines anciennes architectures comme celle de PDP-10 de DEC utilisaient des octets de 6 bits. –
5 * 7 = 30. Je ne vois pas la confusion ici. Pour répondre à votre question cependant: avec un 5e de tequila bon marché pour soigner votre mal de tête. –