您的位置:

c语言向左位移,c语言中左移位的用法

本文目录一览:

C语言左移

05左移5位,即000000

06左移6位,即0000000

左移后是用二进制表示的,

具体的这个程序中有什么用,应该看程序本身,

就像#define PI_FRMERR (0 5)

用000000代替PI_FRMERR可能与某个数进行与操作或其他的。

C语言左移和右移

C语言中左移表示左移运算符,就是把最高位丢弃掉然后在最低位补0;而C语言中的右移就是右移运算法,与左移是相反的,它是往右边挪动若干位。

C语言按位左移运算规则

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

对于操作an,

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

void check(char a, int n)

{

    printf("0x%hhx  %d = 0x%hhx\n", a, n, an);

}

int main()

{

    check(0x12, 3);

    check(0x9e, 2);

    

    return 0;

}

其运行结果为

0x12  3 = 0x90

0x9e  2 = 0x78

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

C语言中怎样表示移位啊?例如将某个值左移两位

利用位操作:""就是左移 ""就是右移

举个例子:将a左移2位,然后赋给a

a=2 也即是a=a2

在C语言中左移1位,相当于乘2,右移相当于除2。