网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

c语言0的左移函数怎么写 c语言中左移位的用法

c语言中 unsigned int 类型数~0,如何左移为 0

unsigned int 左移32位相当于不移动。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名、网络空间、营销软件、网站建设、富宁网站维护、网站推广。

移位运算,要求移位结果至少保留一位原来的数字,也就是说 32 位,最多左移或右移31位,超出31位 得到的数据 是无意义的。

0xffffffff 左移31位是 0x80000000.

没有办法移动成 32位 全0。(除非使用的编译器另有规定)。

-----------------------------

unsigned int a=0xffffffff;

printf("%#x %#x %#x %#x\n",a,a31,a32, a32 );

MS VC++ 6.0 输出 是:

0xffffffff 0x80000000 0xffffffff 0xffffffff

C语言左移

05左移5位,即000000

06左移6位,即0000000

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

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

就像#define PI_FRMERR (0 5)

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

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语言0的左移函数怎么写 c语言中左移位的用法
网站URL:http://bjjierui.cn/article/doeoeph.html

其他资讯