Δημοσιεύτηκε: 29 Αύγ 2011, 17:35
Έφτιαξα κι ένα μικρό προγραμματάκι που για έναν οποιοδήποτε ακέραιο 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;
}