标题:问个C语言左移<<的问题
只看楼主
zjwyczj
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-6-1
结帖率:0
已结贴  问题点数:20 回复次数:8 
问个C语言左移<<的问题
随便写下啦,这个问题比较弱智,别取笑我啊
uchar a=0x1;
uchar b=0x2;
uchar c=0x3;
uchar d=0x3;
void fun(void)
{
   uint i;
   i=a|(b<<8)|(c<<16) |(d<<24)  ;
}
i等于多少,why????
疑惑是abcd是8位的,移位了8位应该全0了??
但是实际上是a,b,c,d变成32位的(跟赋值左式一样??)?再移位??
求解、
搜索更多相关主题的帖子: void 弱智 C语言 
2013-06-01 20:39
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
得分:7 
结果应该是1吧

C++菜鸟
2013-06-01 20:44
zjwyczj
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-6-1
得分:0 
回复 2楼 lzj12530
不是1,是0x04030201
2013-06-01 20:48
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
得分:0 
刚开了帖子,移位操作真是转换为32位来进行的

[ 本帖最后由 lzj12530 于 2013-6-1 21:23 编辑 ]

C++菜鸟
2013-06-01 21:12
zjwyczj
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-6-1
得分:0 
回复 4楼 lzj12530
额,哪的帖子,发给我看看啊。我也疑惑中,发个链接给我
2013-06-01 21:28
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
得分:0 
百度百科 左移运算符

C++菜鸟
2013-06-01 21:39
zjwyczj
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-6-1
得分:0 
回复 6楼 lzj12530
thanks
2013-06-01 21:57
dengjiajun
Rank: 2
来 自:广州
等 级:论坛游民
帖 子:13
专家分:45
注 册:2013-5-2
得分:7 
#include<stdio.h>
#include<string.h>



void main()
{

unsigned char a=0x1;
unsigned char b=0x2;
unsigned char c=0x3;
unsigned char d=0x3;


   unsigned int i;
   i=a|(b<<8)|(c<<16) |(d<<24)  ;
   printf("%x",i);
}  
结果是:3030201
所以我的是按32位来的
2013-06-01 23:59
gg0013
Rank: 2
等 级:论坛游民
帖 子:25
专家分:16
注 册:2012-11-26
得分:7 
帮顶一下
2013-06-02 01:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-414214-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.278362 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved