16进制或运算与运算
-2 ⽤⼗六进制表⽰,如果数据类型是字节,(signed) char 那么表⽰为 0xFE ,注意如果是unsigned char 类型 0xFE 表⽰254(signed char -128~127,unsigned char 0~255)
如果是int类型(4字节),那么表⽰为 0xFFFFFFFE.
负数⽤⼗六进制表⽰,⾸先应该将其表⽰成⼆进制形式,然后变反码,再变补码。
2 ——> 原码 0000 0010 ——> 反码 1111 1101 (原码按位反转) ——> 补码 1111 1110(反码+1)
补码变为⼗六进制表⽰是 0xFE
下⾯说说⼀些位运算
1.与运算(&)
参加运算的两个数据,按⼆进制位进⾏“与”运算。
运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1;
即:两位同时为“1”,结果才为“1”,否则为0
例如:3&5 即 0000 0011 & 0000 0101 = 0000 0001 因此,3&5的值得1。
例如:9&5 即 0000 1001 (9的⼆进制补码)&00000101 (5的⼆进制补码) =00000001 (1的⼆进制补码)可见9&5=1。
2.或运算(|)
参加运算的两个对象,按⼆进制位进⾏“或”运算。
运算规则:0|0=0; 0|1=1; 1|0=1; 1|1=1;
即 :参加运算的两个对象只要有⼀个为1,其值为1。
例如:3|5 即 0000 0011 | 0000 0101 = 0000 0111 因此,3|5的值得7。
例如:9|5可写算式如下: 00001001|00000101 =00001101 (⼗进制为13)可见9|5=13
3.异或运算(^)
参加运算的两个数据,按⼆进制位进⾏“异或”运算。
运算规则:0^0=0; 0^1=1; 1^0=1; 1^1=0;
负数二进制补码运算法则即:参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为1,否则为0。
例如:9^5可写成算式如下: 00001001^00000101=00001100 (⼗进制为12)可见9^5=12
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论