Δημοσιεύτηκε: 29 Αύγ 2011, 17:35
από migf1
Έφτιαξα κι ένα μικρό προγραμματάκι που για έναν οποιοδήποτε ακέραιο n τυπώνει πόσα bits (και πόσα bytes) καταλαμβάνει στη μνήμη καθώς και τις τιμές των δυαδικών του ψηφίων (τα τυπώνει σε ομάδες των 8 bits΄= 1 byte).

Κώδικας: Επιλογή όλων

#include <stdio.h>
#include <stdlib.h>

typedef int NType; // αλλάξτε το int με οποιοδήποτε άλλον ακέραιο τύπο (short, long, long long, char ... είτε signed είτε unsigned)

//-----------------------------------------------------------------------------------
void print_binary( NType n )
{
short nbytes = sizeof( n );
short nbits = 8 * nbytes;
register short i;

printf("%d binary digits (%d bytes)\n", nbits, nbytes);
for (i=nbits; i > 0; i-- ) {
if ( i != nbits && i%8 == 0)
putchar(' ');
printf("%c", n & (1 << i-1) ? '1' : '0');
}

return;
}
//-----------------------------------------------------------------------------------
int main( void )
{
NType n = 2; // αλλάξτε το με οποιαδήποτε 10-δική, 16-δική ή 8-δική τιμή (είτε θετική είτε αρνητική)

print_binary2( n );
putchar('\n');

return 0;
}