c语言中左移问题
来源:互联网 发布:淘宝主图背景图模板 编辑:程序博客网 时间:2024/06/05 21:54
下面是在GCC上面的程序及结果
#include <stdio.h>int main(){ int b = 32; printf("1<<b=%d\n",1<<b); printf("1<<32=%d\n",1<<32); return 0;}
结果
[wang@Aming Desktop]$ gcc -o test test.ctest.c: In function ‘main’:test.c:7: warning: left shift count >= width of type[wang@Aming Desktop]$ ./test1<<b=11<<32=0
个人分析:
首先编译部分的警告应该是这样理解的,其中一个是变量,一个是常数。编译知识检查语法及规则的方面的错误或者警告,所以,对于1<<b
;这个语句是不存在语法及规则方面问题的。然而,对于1<<32
,常量32大于类型的长度是可以理解的
其次,对于得出不同的结果部分,个人理解是这样的,(以1<<b
为例)如果是一个变量则左移位数是b%32. 而一个确切的常数则移动相应的位数,例如1<<32
,则左移32位
0 0
- c语言中左移问题
- C语言的问题
- C语言指针问题
- C语言问题一则
- c语言问题
- C语言 for问题
- c语言的问题
- c语言的问题
- C语言的问题
- C语言的问题
- C语言的问题
- C语言问题...```
- c语言问题
- C语言画图问题
- C语言编程问题
- C语言问题
- C语言初级问题
- C语言猜拳问题
- CocoaPod的安装和使用
- 关于强制转化后的风险
- 嵌入式linux系统网络配置
- 数学公式对应的markdown代码
- UVA - 11039 Building designing
- c语言中左移问题
- 笔试题检验括弧的匹配是否正确 (){}【】《》
- 无效的主机/绑定变量名
- 网站主机安全之服务器的物理安全
- IntelliJ IDEA 14.0 javaweb项目发布及启动
- Error when calling the metaclass bases Cannot create a consistent method resolution order (MRO) for
- 无符号数向有符号数自动转化问题
- Struts2:详解配置文件struts.xml
- Android中Activity之间切换动画的修改