1、二进制运算符位运算符: byte b2 = -5;b1 00000101 b2 100001013、生活中十进制整数与计算机中的二进制及八、十六进制数的对应关系十 二 八 十六0 000 0 01 001 1 12 010 2 23 011 3 34 100 4 45 101 5 56 110 6 67 111 7 78 1000 10 89 1001 11 910 1010 12 A11 1011 13 B12 1100 14 C13 1101 15 D14 1110 16 E15 1111 17 F4、十进制整数如何转换成二进制数?除以基数取余倒写。基数就是某种进制数的基本数字个数。例如:
2、 6 =( 110 )25、十进制整数转换成任意进制数(如:八、十六)如何进行?同上。例如: 15 =( 017 )8例如: 65 =( 0X41)166、二进制数如何转换成十进制数?按权展开求和。权重就是基数的 n 次方,n 是位置编号,从右往左,从 0 开始编。例如: (110)2 = ( 6 )10任何进制的数转换为十进制都是按权展开求和。7、二进制数转换成八进制数?将二进制数从右往左每数三位作为一个八进制数(对这三位按权展开求和) 即可。如: (1000001) = ( 101 )88、二进制数转换成十六进制数?将二进制数从右往左每数四位作为一个十六进制数(对这四位按权展开求和) 即可
3、。如: (1000001) = ( 41 )169、原码、反码和补码?1) 原码:将数据转换成二进制,并在其存储的最高位添加符号所得编码。例如: int a = -5; 则 a(即:-5 )的原码是: 10000000 00000000 00000000 000001012) 反码:在原码的基础上按位取反,符号不变所得的编码。例如: int a = -5; 则 a(即:-5 )的反码是: 11111111 11111111 11111111 111110103) 补码:在反码的基础上再加 1 所得的编码。例如: int a = -5; 则 a(即:-5 )的补码是: 11111111 1111
4、1111 11111111 11111011注意:在计算机中,正整数只有原码没有反码和补码;或者说,正整数的原码和反码及补码是同一个,都是原码。注意:在计算机中,负数通常以补码方式参与运算或处理,只在某几个特殊的情况下才以原码参与运算。10、已知某数的补码,如何求其原码?补码的补码就是原码。即: 先将已知的补码看成是原码,再求其反码,最后在反码上加 1 所得的编码就是要求的原码。例如: 已知 int a = -5; 的补码为 : 11111111 11111111 11111111 11111011 要求其原码是什么?第一步(看成原码): 11111111 11111111 11111111
5、11111011第二步(求其反码): 10000000 00000000 00000000 00000100第三步(求其补码): 10000000 00000000 00000000 00000101因此,-5 的原码就是: 第三步所得的编码。A、 其结果是: 10000000 00000000 00000000 00000101其结果是: 7C、(按位异或)格式: a b规则: 相同异或为 0 , 不同异或为 1.D、(按位取反)格式: a规则: 1 变 0, 0 变 1 ;而且符号位也参与运算。5 00000000 00000000 00000000 00000101-11111111 11111111 11111111 11111010 E、(有符号的右移)格式: c = a b;规则: a 右移 b 位。左边补符号位。特点: 每右移一位,数将缩小一倍。注意: 负数以原码方式参与运算。G、(无符号的右移)格式: c = a b;规则: a 右移 b 位。左边补 0。特点: 每右移一位,数将缩小一倍。注意: 所有的数据以无符号的方式参数运算。