当前位置:首页 » 编程语言 » c语言的移位运算符

c语言的移位运算符

发布时间: 2023-09-01 05:25:21

‘壹’ C语言中位移位运算符

位移位运算符,顾名思议,用来移位用。
如:
a=0x01;
a <<=2;
则,a变成0x04了。
上面是左移,如果右移是a >>= 2;

‘贰’ C语言按位左移运算规则

C语言中按位左移的运算符为<<,其规则如下:

对于操作a<<n,

1 按照二进制值每位向高位(书写上是向左)移动n位;

2 最高位(最左边的)n位舍去;

3 最低位(最右边)填加n个0.


简单起见,用char型举例如下:

例一

0x12 << 3 =>

B00010010 << 3 =>

B10010 000(这里最高位的三个0被舍去,其它依次左移,最低位补三个0) =>

0x90

即0x12 << 3 = 0x90

例二

0x9E << 2 =>

B10011110 << 2 =>

B01111000 (最高位10舍去,最低位补两个0)=>

0x78


可以编写如下程序验证:

#include<stdio.h>
voidcheck(chara,intn)
{
printf("0x%hhx<<%d=0x%hhx ",a,n,a<<n);
}

intmain()
{
check(0x12,3);
check(0x9e,2);

return0;
}

其运行结果为

0x12<<3=0x90
0x9e<<2=0x78

可以看到与我们计算结果是相符的。

‘叁’ C语言中移位运算

右移对符号位的处理和左移不同,对于有符号整数来说,比如int类型,右移会保持符号位不变,例如:10100110 >>5(假设字长为8位),则得到的是 11111101。

总之,在C中,左移是逻辑/算术左移(两者完全相同),右移是算术右移,会保持符号位不变.实际应用中可以根据情况用左/右移做快速的乘/除运算,这样会比循环效率高很多.

所以,short a=0xf245,即a=1111001001000101,经过右移后,b=a>>8;b=1111111111110010,即b=0xfff2。注意是有符号右移为算术右移!!!

‘肆’ C语言移位运算符怎么用

右移对符号位的处理和左移不同,对于有符号整数来说,比如int类型,右移会保持符号位不变,例如:10100110
>>5(假设字长为8位),则得到的是
11111101。
总之,在c中,左移是逻辑/算术左移(两者完全相同),右移是算术右移,会保持符号位不变.实际应用中可以根据情况用左/右移做快速的乘/除运算,这样会比循环效率高很多.
所以,short
a=0xf245,即a=1111001001000101,经过右移后,b=a>>8;b=1111111111110010,即b=0xfff2。注意是有符号右移为算术右移!!!

‘伍’ C语言左位移运算符和右位移运算符是什么意思,怎么运算,举个例子..

就是把一个数转化成二进制再直接对他进行操作
例如:
45>>2 //45右移两位
45的二进制为:101101
右移两位就为: 001011
001011再转化为十进制为:11
所以45>>2= 11
左移运算符
45<<2
45的二进制为:101101
左移两位就为:10110100
10110100再转化为十进制为:180
所以45<<2=180

‘陆’ C程序中,左移“<<”、右移“>>” 的具体用法是什么

C语言中,“<<”为左移运算符,“>>”为右移运算符。

具体使用方法如下:

1、左移运算符(<<)

将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。

例:a = a << 2 将a的二进制位左移2位,右补0,

左移1位后a = a * 2;

若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。


2、右移运算符(>>)

将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。

操作数每右移一位,相当于该数除以2。

例如:a = a >> 2 将a的二进制位右移2位。

左补0 or 补1 得看被移数是正还是负。

热点内容
副编译 发布:2025-02-04 02:05:25 浏览:613
解压按摩师 发布:2025-02-04 01:21:31 浏览:424
linuxssh限制 发布:2025-02-04 01:20:40 浏览:697
脚本式是什么 发布:2025-02-04 01:06:24 浏览:248
手机wps密码怎么取消密码 发布:2025-02-04 00:51:44 浏览:596
算法逻辑表 发布:2025-02-04 00:51:44 浏览:241
零售股票如何配置主线 发布:2025-02-04 00:51:07 浏览:948
预算法施行时间是 发布:2025-02-04 00:50:30 浏览:342
世界ol上传照片 发布:2025-02-04 00:34:13 浏览:63
有初始化的数组编译提示重复定义 发布:2025-02-04 00:33:21 浏览:584