#include <stdio.h>
#include <stdint.h>
int main( void ) {
int i;
uint64_t x = 530797644 ;
printf ( "binary input as a single integer: %08lX\n " , x
) ;
printf ( "binary input as a sequence of integer bytes: " ) ; for ( i = 0 ; i < 4 ; ++ i)
printf ( "%02hhX" , ( ( char * ) & x
) [ i
] ) ;
x = ( ( x & 0x00000000ffff0000LL) << 16 ) | ( x & 0x000000000000ffffLL) ;
x = ( ( x & 0x0000ff000000ff00LL) << 8 ) | ( ( x & 0x000000ff000000ffLL) >> 0 ) ;
x = ( ( x & 0x000f000f000f000fLL) << 8 ) | ( ( x & 0x00f000f000f000f0LL) >> 4 ) ;
x = ( x + 0x3030303030303030LL) +
( ( ( x + 0x0606060606060606LL) & 0x1010101010101010LL) >> 4 ) * 7 ;
printf ( "hex output as a single integer: %016lX\n " , x
) ;
printf ( "hex output as a sequence of chars: " ) ; for ( i = 0 ; i < 8 ; ++ i)
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRpbnQuaD4KCmludCBtYWluKHZvaWQpIHsKCWludCBpOwogICAgdWludDY0X3QgeCA9IDUzMDc5NzY0NDsKICAgIAogICAgcHJpbnRmKCJiaW5hcnkgaW5wdXQgYXMgYSBzaW5nbGUgaW50ZWdlcjogJTA4bFhcbiIsIHgpOwogICAgCiAgICBwcmludGYoImJpbmFyeSBpbnB1dCBhcyBhIHNlcXVlbmNlIG9mIGludGVnZXIgYnl0ZXM6ICIpOwogICAgZm9yIChpID0gMDsgaSA8IDQ7ICsraSkKICAgIAlwcmludGYoIiUwMmhoWCIsICgoY2hhciAqKSZ4KVtpXSk7CiAgICBwdXRjaGFyKCdcbicpOwoJCiAgICB4ID0gKCh4ICYgMHgwMDAwMDAwMGZmZmYwMDAwTEwpIDw8IDE2KSB8ICh4ICYgMHgwMDAwMDAwMDAwMDBmZmZmTEwpOwoJeCA9ICgoeCAmIDB4MDAwMGZmMDAwMDAwZmYwMExMKSA8PCA4KSAgfCAoKHggJiAweDAwMDAwMGZmMDAwMDAwZmZMTCkgPj4gMCk7Cgl4ID0gKCh4ICYgMHgwMDBmMDAwZjAwMGYwMDBmTEwpIDw8IDgpICB8ICgoeCAmIDB4MDBmMDAwZjAwMGYwMDBmMExMKSA+PiA0KTsKCXggPSAoeCArIDB4MzAzMDMwMzAzMDMwMzAzMExMKSArCgkJKCgoeCArIDB4MDYwNjA2MDYwNjA2MDYwNkxMKSAmIDB4MTAxMDEwMTAxMDEwMTAxMExMKSA+PiA0KSAqIDc7CiAgICAKICAgIHByaW50ZigiaGV4IG91dHB1dCBhcyBhIHNpbmdsZSBpbnRlZ2VyOiAlMDE2bFhcbiIsIHgpOwogICAgCiAgICBwcmludGYoImhleCBvdXRwdXQgYXMgYSBzZXF1ZW5jZSBvZiBjaGFyczogIik7CiAgICBmb3IgKGkgPSAwOyBpIDwgODsgKytpKQogICAgCXB1dGNoYXIoKChjaGFyICopJngpW2ldKTsKICAgIHB1dGNoYXIoJ1xuJyk7CiAgICAKCXJldHVybiAwOwp9