一、>>
这是C语言中的“右移运算符”。一般情况下,他是按位操作。
特点:1.双目运算符,就像+、-、*、/一样,格式为(数1)>>(数2)
2.数1是被操作数,如被减数、被除数等;数2是右移位数。
3.优先级低,结合性:从左向右运算
如:8>>1=?表示将被移数向右移动1位
如何操作?
1.化十进制数为(注意了)对应的二进制数,对应指格式对应
2.通通右移,正数左补0,负数左补1,右边丢弃
3.化为十进制数
举例:short int a=8;a=a>>1;
1.a=0 000 1000
2.右移一位后:a= 0 000 100
3.补0:a=0 000 0100
4.化为十进制数:a=4
举例:int a=8;a=a>>1;
1.a=0 000 0000 0000 1000
2.右移一位后:a= 0 000 0000 0000 100
3.补0:a=0 000 0000 0000 0100
4.化为十进制数:a=4
二、<<
将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。
例:a = a << 2 将a的二进制位左移2位,右补0,
左移1位后a = a * 2;
若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。
三、0xf 0xf0 0xff 0x7f等表示
注意:千万不要被表象所疑惑,直接转换成二进制即可
1、0xf:(第一种转换方式:先转换成十进制,再转换成二进制)
16进制的f转成10进制为15 , 15转换成二进制为 0000 1111
2、0x7f:(第二种转换方式:16进制直接转换成二进制)
1)7:转换成二进制为:111, 放在最后结果的高4位,即:0111
2)f : 转换成二进制为: 1111,放在最后结果的低4位,即:1111
3)将最后结果合起来:0111 1111