-
chevron_right
C - Bits und Bytes
Stefan · Sunday, 29 November, 2020 - 11:56 · 1 minute
#include <stdlib.h>
#include <stdio.h>
#include <limits.h>
// HEX: ABCD - 1010 1011 1100 1101
int main( int argc, char* argv[] ) {
printf("unsigned short...\n");
unsigned short x = USHRT_MAX;
printf("unsigned short MAX:\t%hu\n", x);
printf("unsigned short MAX+1:\t%hu\n", x+1);
printf("unsigned short MAX:\t0x%X\n\n", x);
printf("unsigned char MAX:\t%hhu\n", UCHAR_MAX );
printf("unsigned char MAX+1:\t%hhu\n", UCHAR_MAX+1);
printf("unsigned char MAX:\t0x%X\n\n", UCHAR_MAX );
x = 0xABCD;
unsigned char h = (x>>8);
unsigned char l = x;
printf("x = 0x%X\n", x);
printf("h = 0x%X\n", h);
printf("l = 0x%X\n", l);
printf("bh1 = %c\n", h & 0x01 ? '1' : '0');
printf("bh2 = %c\n", h & 0x02 ? '1' : '0');
printf("bh3 = %c\n", h & 0x04 ? '1' : '0');
printf("bh4 = %c\n", h & 0x08 ? '1' : '0');
printf("bh5 = %c\n", h & 0x10 ? '1' : '0');
printf("bh6 = %c\n", h & 0x20 ? '1' : '0');
printf("bh7 = %c\n", h & 0x40 ? '1' : '0');
printf("bh8 = %c\n", h & 0x80 ? '1' : '0');
printf("bl1 = %c\n", l & 0x01 ? '1' : '0');
printf("bl2 = %c\n", l & 0x02 ? '1' : '0');
printf("bl3 = %c\n", l & 0x04 ? '1' : '0');
printf("bl4 = %c\n", l & 0x08 ? '1' : '0');
printf("bl5 = %c\n", l & 0x10 ? '1' : '0');
printf("bl6 = %c\n", l & 0x20 ? '1' : '0');
printf("bl7 = %c\n", l & 0x40 ? '1' : '0');
printf("bl8 = %c\n", l & 0x80 ? '1' : '0');
return EXIT_SUCCESS;
}