codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#define bitRead(value, bit) (((value) >> (bit)) & 0x01) int main() { // L'image d'un zéro, de taille 5x5 // 01110 // 10001 // 10001 // 10001 // 01110 // // on regroupe pour en faire des bytes, soit: // 01110100 // 01100011 // 00010111 // 00000000 // // codepad ne prend pas en charge la notation binaire, donc je convertis en decimal: uint8_t img[] = { 116, 99, 23, 0 }; // dimensions de l'image: uint16_t img_w = 5; uint16_t img_h = 5; uint16_t img_sz = img_w * img_h; // quelques variables: uint8_t bit = 8; uint16_t bits = 0; uint16_t byte = 0; // tant qu'il reste des bits à lire while ( img_sz-- ) { // on affiche la valeur du bit actuel: printf( "%d", bitRead( img[byte], --bit ) ); // si on a lu tous les bits du byte actuel, on passe au byte suivant: if ( bit == 0 ) { bit = 8; byte++; } // si on a lu tous les bits d'une ligne, on passe à la ligne suivante: if ( ++bits == img_w ) { bits = 0; printf( "\n" ); } } }
Private
[
?
]
Run code
Submit