Archive.
Gratteur
Messages : 147 Inscription : ven. 22/avr./2005 23:02
Message
par Gratteur » mer. 04/avr./2007 20:52
Cet exemple parle de lui-même, notre ami l'octet se prend pour un long (et mon algo foire), c'est zarb.
Code : Tout sélectionner
b.b
b = %01100001
b << 4
Debug Bin(b)
b = %01101101
b << 4
Debug Bin(b)
Dernière modification par
Gratteur le mer. 04/avr./2007 22:49, modifié 1 fois.
minirop
Messages : 321 Inscription : mer. 02/août/2006 21:06
Message
par minirop » mer. 04/avr./2007 21:11
edit : je pense avoit trouvé !
.b est signé donc me 1er bit est pour le signe donc il faut 7 et non 8 chiffres.
si tu veux 8 chiffres, mets .c
Gratteur
Messages : 147 Inscription : ven. 22/avr./2005 23:02
Message
par Gratteur » mer. 04/avr./2007 21:34
Ouais je veux bien que la signature puisse entrainer des problème, mais la ce sont des calculs bit a bit et le bit de signature de devrait pas influer sur la longueur de la valeur. En fait on se retrouve avec autre chose qu'un octet ce qui est anormal (ou alors j'ai loupé quelque chose sur la représentation d'un octet).
Quelqu'un peut expliquer pourquoi cet octet devient un entier ?
minirop
Messages : 321 Inscription : mer. 02/août/2006 21:06
Message
par minirop » mer. 04/avr./2007 22:23
après quelques tests, il n'y a que les nombres négatifs qui soient représentés en binaire sur 4 octets. (%1xxxxxxx)
Backup
Messages : 14526 Inscription : lun. 26/avr./2004 0:40
Message
par Backup » mer. 04/avr./2007 23:31
Gratteur a écrit : Cet exemple parle de lui-même, notre ami l'octet se prend pour un long (et mon algo foire), c'est zarb.
Code : Tout sélectionner
b.b
b = %01100001
b << 4
Debug Bin(b)
b = %01101101
b << 4
Debug Bin(b)
pour moi c'est un bug a Montrer a Fred !!
Dr. Dri
Messages : 2527 Inscription : ven. 23/janv./2004 18:10
Message
par Dr. Dri » ven. 06/avr./2007 18:52
en fait bin attend un long donc l'octet est transformé en long et s'il est négatif le bit de poids fort sera le 32e...
suffit de faire Bin(b & $FF)
Dri