• person rss_feed

    Stefan’s feed

    Blog

    • 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;
    }