C语言经典100例(Python版本)051-055


               
               
                '''
【程序51】
题目:学习使用按位与 & 。   
1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1
2.程序源代码:
'''
if __name__ == '__main__':
    a = 077
    b = a & 3
    print 'a & b = %d' % b
    b &= 7
    print 'a & b = %d' % b
'''
题目:学习使用按位或 | 。
1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1            
2.程序源代码:
'''
if __name__ == '__main__':
    a = 077
    b = a | 3
    print 'a | b is %d' % b
    b |= 7
    print 'a | b is %d' % b
'''
【程序53】
题目:学习使用按位异或 ^ 。   
1.程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0
2.程序源代码:
'''
if __name__ == '__main__':
    a = 077
    b = a ^ 3
    print 'The a ^ 3 = %d' % b
    b ^= 7
    print 'The a ^ b = %d' % b
'''
【程序54】
题目:取一个整数a从右端开始的4~7位。
程序分析:可以这样考虑:
(1)先使a右移4位。
(2)设置一个低4位全为1,其余全为0的数。可用~(~0''
if __name__ == '__main__':
    a = int(raw_input('input a number:\n'))
    b = a >> 4
    c = ~(~0  4)
    d = b & c
    print '%o\t%o' %(a,d)
'''
【程序55】
题目:学习使用按位取反~。   
1.程序分析:~0=1; ~1=0;
2.程序源代码:
如何查看复数的16进制数
'''
if __name__ == '__main__':
    a = 234
    b = ~a
    print 'The a\'s 1 complement is %d' % b
    a = ~a
    print 'The a\'s 2 complement is %d' % a