bonjour,
j'ai les variables suivantes :
comment faire pour remplir les n premiers octets de buffer avec la valeur de cpt ?Code:
1
2 byte[] buffer = new byte[bSize]; long cpt;
merci d'avance,
Version imprimable
bonjour,
j'ai les variables suivantes :
comment faire pour remplir les n premiers octets de buffer avec la valeur de cpt ?Code:
1
2 byte[] buffer = new byte[bSize]; long cpt;
merci d'avance,
C'est à dire ? Tu souhaites découper le "long" en 8 octets et les placer dans le tableau ?
Alors regarde la documentation sur les opérateurs de décalages de bits ">>" et "<<" ainsi que le ET binaire "&".
ok merci,
les bits de poids fort sont forcement à gauche (quelque soit la plateforme ?) ?
?
À toi de voir si tu veux les mettre en big-endian ou en little-endian. Ça peut être l'un ou l'autre, mais tu dois en décider un, et utiliser le même partout pour transformer tes long en byte[] et tes byte[] en long.
Un long, par contre, c'est un long. Ses bits de poids forts ne sont ni à gauche, ni à droite, ils sont ses bits de poids fort. Et par conséquent, il fonctionne pareil sur toutes les plate-formes, oui. (Une propriété bien connue de Java.)
... C'est le cas, justement...
Mais c'est toi qui as raison, on parle normalement de décalage à gauche ou de décalage à droite. Et oui, les bits de poids fort sont toujours à gauche. (Ce qui est aussi le cas dans tous les langages munis de ces opérateurs, quelle que soit la plate-forme.)
ok, merci ;)