好好学习,好好工作,好好生活
终身学习,努力赚钱,健康愉快 注意:转发本blog文章请注明文章出处(http://www.blogjava.net/lusm)谢谢支持!
首页
新随笔
联系
聚合
管理
随笔 - 303 文章 - 883 trackbacks - 0
<
2008年2月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
1
2
3
4
5
6
7
8
欢迎光临!
闲聊
QQ:
1074961813
随笔分类
(357)
Ajax、Flex(6)
Blog公告(3)
c/c++/C#/pasic/vb/php/asp(.net)/win-cgi/xml...(53)
database(13)
j2se/j2ee/j2me(142)
kernel (16)
linux configuration(6)
Listening 所有的声音都是音乐(1)
matlab~~~值得一学的工具(2)
network(5)
SUN OS(8)
unix program(10)
书法(欲罢不能,神魂颠倒的美)(4)
入侵反入侵(4)
关于搜索引擎
哲学世界(8)
多媒体开发(4)
嵌入式开发(14)
常用资源(19)
汇编 *asm/at&t ....(1)
科学百科(4)
算法(2)
编程问题(4)
计算机病毒反病毒学(4)
身体锻炼(5)
软件 & 书籍 推荐(19)
我管理的群
j2ee
struts Hibernate spring等学习 基础不扎实 可以跳到j2se学习群 37486623 请先退出该群
j2se(37486623)
j2se学习 若人满请加到12999758 学完的可以跳到j2ee学习群 37486483 请先退出该群
java || .net(50982019)
java & .net都是热门的web技术 当然可以一起学啦 欢迎前来探讨技术 解决问题
java 2(35917927)~~~请加这个
该群在发展中,踢人是经常的事情
java(12999758)
学完的可以跳到j2ee学习群 37486483 请先退出该群
Java应用(14821632)
学无止境 好好努力! 讨论 web 技术 、 Java (j2se j2ee) 、C/S编程 、 数据库 。。。。
Linux C、C++(33318370)
将 Linux 和 C、C++ 编程进行到底!
Think in java(16705375)~~~请加这个
《Think in java》 我们的最爱
国学(111230500)
历史、宗教、哲学、气功、传统技艺,欢迎加入,知无不言,言无不尽!
文祠实习群(32644370)
07年文祠实习群
驱动开发群(27054589)
arm || intel ...platform Windows || Linux device driver development 有一定基础方可加入
公共blog
n维空间
Email : java3d@126.com 群 : 12999758
参与管理的论坛
ineedyou
ourlinux
好友的blog
lyforever
Resplendent技术blog
java、VC和嵌入开发
一梦如是
c/c++/windows/mfc
三驾马车
仙人指路
弄VC和汇编的家伙
吕鑫磊
吴卫-3D工作室
好好学习,天天向上,态度决定一切
同学的blog
廖益花
琦琦
北京的朋友,和我一起创建了不少群 呵呵!
菜菜C++
VC++
陈敏师兄
霍霍
一个和我差不多大的北京女孩
我的其他blog
kernel world(csdn)
寻寻觅觅—— C语言
我的世界 不被打扰
虚拟世界-自由自在
音乐在身边
朋友的网站
china1996.cn
ourlinux.org
ourlinux.org
笑话大全
累了的时候啦 可以寻下开心
搜索
最新评论
1. re: Windows Embedded CE 6.0 下载地址和序列号
评论内容较长,点击标题查看
--码无止茎
2. re: Caused by: java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool
评论内容较长,点击标题查看
--一
3. re: linux0.11内核编程入门全集视频下载
博主,看不了啊,方便的话发一份到ren1198997229@163.com 谢谢( ̄▽ ̄)"
--renchunhui
4. re: JVM 、JDK(c/c++)源代码下载[未登录]
还可以吧
--刘勇
5. re: linux0.11内核编程入门全集视频下载
视频怎么下不了啊
--MSM
C中的 "<<" 位运算符
在我们的教科书中和平时写的小型应用程序中,很少能见到“<<”移位运算符,个人觉得原因有几个,第一、我们的程序中时常使用的是十进制数据,如“10”、“0.5”,很少会用到十六进制的数。其次,大部分的初级程序员脑子里没有二进制、八进制、十六进制的影子,一方面由于学校教育的缺陷所致、一方面是,生活中所见大多十进制的数据。
为什么要用到非十进制的数制?
答:因为字节是内存的基本数据单位。八进制在计算机系统里不着重要且奇特的作用,或者说所有和二的N次方(2、4、8、16 ... ... 256、512、1024)的数都和计算机有着莫大的联系。
什么地方,我们会时常见到这些数据?
答:具个人所见,在表示内存地址、寄存器地址、端口地址,及对一些寄存器进行附值操作时,会时常用到。
如何对非十进制数据进行操作?
答:在C里有不少的运算符提供了这些功能。比如:~位取反,& 位逻辑与 ,| 位逻辑或,^ 位逻辑异或,>> 右移,<< 左移 。用这些操作符,可以以二进制的方式操作数据。
为什么要学这些?
答:这个问题很有意思、也是我们在学习之前必须弄清楚的,如果不知道有什么用,那学完很快就会忘记,且学起来毫无热情可言。废话多了,当你打算拿C做一些底层操作,或者你打算在不久的将来或你现在就打算征服Linux内核,那就很有必要学学了,学得好是帮助,学得不好是瓶颈,有点言重了,呵呵!!
在众多的位操作符中,偶最常见的就是"<<"这个啦!所以这些只打算说说它,如果你对其他的感兴趣,可自行早资料看看。
首先、你有必要确定你的机器上装了VC6或VC2005,我这里装了2005
然后、复制下面这个程序,到你机器上运行下
#include
<
iostream
>
using
Namespace std
namespace
std;
int
main(){
int
a
=
1
;
cout
<<
a
<<
endl;
a
=
a
<<
10
;
cout
<<
a
<<
endl;
return
0
;
}
打印出来的是 > 1024
为什么是1024?
看到没?上面的代码,中间有一句是怎么写的 > a = a<<10;
对,就是它了,左移位运算符号,这句话做的事情是:
先将a里的1转化为二进制的1,然后将他左移10位,每移一位补一个0上去,运行这句之后a在机器里的二进制就成了 10000000000 化为十进制 1*2
10
=1024
哈哈,是不是有点晕,没事,再运行下,下面的程序就完全了解了
#include
<
iostream
>
using
Namespace std
namespace
std;
int
main(){
int
a
=
1
;
cout
<<
a
<<
endl;
a
=
a
<<
10
;
//
1
*
1024
cout
<<
a
<<
endl;
a
=
1
;
a
=
a
<<
8
;
//
1
*
256
cout
<<
a
<<
endl;
a
=
2
;
a
=
a
<<
9
;
//
2
*
512
cout
<<
a
<<
endl;
return
0
;
}
总结一下,这里a<<n 可以看成 a * 2
n
这下了解吧^_^
接下来再介绍下如何在头文件里使用<<吧!在头文件里定义的是宏,所以,一旦定义错误,编译的时候并不会提示出错,而运行就找了麻烦了,所以一定要小心哦!下面给个简单的例子吧!
i.h
#define
A(var) (var<<10)
main.c
#include
<
iostream
>
using
namespace
std;
#include
"
i.h
"
int
main()
{
cout
<<
A(
1
)
<<
endl;
return
0
;
}
上面,不过是些极其简单的内容,如果想正真了解,请多看一些低层代码并多多实践吧!
地震让大伙知道:居安思危,才是生存之道。
posted on 2008-02-09 20:37
小寻
阅读(574)
评论(1)
编辑
收藏
所属分类:
c/c++/C#/pasic/vb/php/asp(.net)/win-cgi/xml...
FeedBack:
#
re: C中的 "<<" 位运算符
2009-02-04 13:39
militala
真不错, 谢谢, 喜欢...没有多少人讲这么细, 呵呵....
收了.
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
[转][精]windows DDK驱动开发视频
[原创]JACOB语法
[原创]浅析JACOB
[转]在Ajax应用中自定义脚本时出现"Sys未定义"的错误。
nhibernate 视频教程和代码 下载
eWebEditor 'ContentFlag' 未定义错误 分析解决
如何在C#.net中编写和使用DLL文件 [代码+ppt+视频讲解]
C# .net 报表控件(reportViewer) [代码+视频讲解]
C# .net ajax 户籍查询系统 [代码+视频讲解]
C中的指针