社区
C语言
帖子详情
关于c图形函数
sxj0384
2009-05-26 08:34:57
textattr(i + ((i+1) << 4));各位高手,请问<<是什么作用??能否给个实例,
来讲解一下,小弟谢过了~~
...全文
88
6
打赏
收藏
关于c图形函数
textattr(i + ((i+1) << 4));各位高手,请问<<是什么作用??能否给个实例, 来讲解一下,小弟谢过了~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sxj0384
2009-05-27
打赏
举报
回复
谢谢了!!
猫已经找不回了
2009-05-26
打赏
举报
回复
http://www.cnblogs.com/mechecksv/articles/1040185.html
int i = 1;
i = i << 2; //把i里的值左移2位
也就是说,1的2进制是000...0001(这里1前面0的个数和int的位数有关,32位机器,gcc里有31个0),左移2位之后变成000... 0100,也就是10进制的4,所以说左移1位相当于乘以2,那么左移n位就是乘以2的n次方了(有符号数不完全适用,因为左移有可能导致符号变化,下面解释原因)
需要注意的一个问题是int类型最左端的符号位和移位移出去的情况.我们知道,int是有符号的整形数,最左端的1位是符号位,即0正1负,那么移位的时候就会出现溢出,例如:
int i = 0x40000000; //16进制的40000000,为2进制的01000000...0000
i = i << 1;
那么,i在左移1位之后就会变成0x80000000,也就是2进制的100000...0000,符号位被置1,其他位全是0,变成了int类型所能表示的最小值,32位的int这个值是-2147483648,溢出.如果再接着把i左移1位会出现什么情况呢?在C语言中采用了丢弃最高位的处理方法,丢弃了1之后,i的值变成了0.
左移里一个比较特殊的情况是当左移的位数超过该数值类型的最大位数时,编译器会用左移的位数去模类型的最大位数,然后按余数进行移位,如:
int i = 1, j = 0x80000000; //设int为32位
i = i << 33; // 33 % 32 = 1 左移1位,i变成2
j = j << 33; // 33 % 32 = 1 左移1位,j变成0,最高位被丢弃
在用gcc编译这段程序的时候编译器会给出一个warning,说左移位数>=类型长度.那么实际上i,j移动的就是1位,也就是33%32后的余数.在gcc下是这个规则,别的编译器是不是都一样现在还不清楚.
总之左移就是: 丢弃最高位,0补最低位
猫已经找不回了
2009-05-26
打赏
举报
回复
左移符号啊,位移操作。还要什么实例?
sxj0384
2009-05-26
打赏
举报
回复
期待~给个实例
sxj0384
2009-05-26
打赏
举报
回复
那有什么用??
晒月光的青蛙
2009-05-26
打赏
举报
回复
< <是移位符,这里表示左移4位
C语言
图形
函数
C语言——
图形
函数
C语言——
图形
函数
C语言——
图形
函数
C语言——
图形
函数
C语言
图形
函数
大全.doc
C语言
图形
函数
大全.doc
C语言
图形
函数
介绍
Turbo C提供了非常丰富的
图形
函数
, 所有
图形
函数
的原型均在graphics. h中, 本节主要介绍
图形
模式的初始化、独立
图形
程序的建立、基本
图形
功能、
图形
窗口以及
图形
模式下的文本输出等
函数
。另外, 使用
图形
函数
时要确保有显示器
图形
驱动程序*BGI, 同时将集成开发环境Options/Linker中的Graphics lib选为on, 只有这样才能保证正确使用
图形
函数
。
C语言
图形
函数
介绍(计算机
图形
学)
C语言
图形
函数
介绍(计算机
图形
学)代码说明
C语言
图形
函数
库总结graphics.h[参照].pdf
C语言
图形
函数
库总结graphics.h[参照].pdf
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章