#include <stdio.h>
#define maxdigits 65
char buffer[ maxdigits] ;
/* fill in from rhd */
void PrintBinary( int value) {
char tempbuffer[ maxdigits] ;
char c;
int index= maxdigits- 2 ;
tempbuffer[ maxdigits- 1 ] = '\0 ' ;
while ( value > 0 ) {
tempbuffer[ index-- ] = value & 1 ? '1' : '0' ;
value = value >> 1 ;
}
tempbuffer[ index] = '%' ;
printf ( "%sb\n \r " ,& tempbuffer
[ index
] ) ; }
int main( int argc, char * argv[ ] )
{
int a = 0x45 ;
int b= 0x67 ;
int c;
printf ( " a " ) ; PrintBinary
( a
) ; printf ( " b " ) ; PrintBinary
( b
) ; c= a & b;
printf ( "a&b " ) ; PrintBinary
( c
) ; printf ( " a " ) ; PrintBinary
( a
) ; printf ( " b " ) ; PrintBinary
( b
) ; c= a | b;
printf ( "a|b " ) ; PrintBinary
( c
) ; printf ( " a " ) ; PrintBinary
( a
) ; printf ( " b " ) ; PrintBinary
( b
) ; c= a ^ b;
printf ( "a^b " ) ; PrintBinary
( c
) ; return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIG1heGRpZ2l0cyA2NQpjaGFyIGJ1ZmZlclttYXhkaWdpdHNdOwoKLyogZmlsbCBpbiBmcm9tIHJoZCAqLwp2b2lkIFByaW50QmluYXJ5KGludCB2YWx1ZSkgewogICAgY2hhciB0ZW1wYnVmZmVyW21heGRpZ2l0c107CgljaGFyIGM7CglpbnQgaW5kZXg9bWF4ZGlnaXRzLTI7Cgl0ZW1wYnVmZmVyW21heGRpZ2l0cy0xXT0nXDAnOwoJd2hpbGUgKHZhbHVlID4wKSB7CgkJdGVtcGJ1ZmZlcltpbmRleC0tXT0gdmFsdWUgJiAxPycxJzonMCc7CgkJdmFsdWUgPSB2YWx1ZSA+PiAxOwoJfQoJdGVtcGJ1ZmZlcltpbmRleF09JyUnOwoJcHJpbnRmKCIlc2JcblxyIiwmdGVtcGJ1ZmZlcltpbmRleF0pOwp9CgoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKewogaW50IGEgPTB4NDU7CiBpbnQgYj0gMHg2NzsKIGludCBjOwogcHJpbnRmKCJUaGlzIGlzIGEgJiBiXG4iKSA7CiBwcmludGYoIiBhICAiKSA7UHJpbnRCaW5hcnkoYSkgOwogcHJpbnRmKCIgYiAgIikgO1ByaW50QmluYXJ5KGIpIDsKIGM9IGEgJiBiOwogcHJpbnRmKCIgLS0tLS0tLS0tXG4iKSA7CiBwcmludGYoImEmYiAiKSA7UHJpbnRCaW5hcnkoYykgOwogcHJpbnRmKCJcblRoaXMgaXMgYSB8IGJcbiIpIDsKIHByaW50ZigiIGEgICIpIDtQcmludEJpbmFyeShhKSA7CiBwcmludGYoIiBiICAiKSA7UHJpbnRCaW5hcnkoYikgOwogYz0gYSB8IGI7CiBwcmludGYoIiAtLS0tLS0tLS1cbiIpIDsKIHByaW50ZigiYXxiICIpIDtQcmludEJpbmFyeShjKSA7CiBwcmludGYoIlxuVGhpcyBpcyBhIF4gYlxuIikgOwogcHJpbnRmKCIgYSAgIikgO1ByaW50QmluYXJ5KGEpIDsKIHByaW50ZigiIGIgICIpIDtQcmludEJpbmFyeShiKSA7CiBjPSBhIF4gYjsKIHByaW50ZigiIC0tLS0tLS0tLVxuIikgOwogcHJpbnRmKCJhXmIgIikgO1ByaW50QmluYXJ5KGMpIDsKIHJldHVybiAwOwp9CgoKCg==