c语言中的移位操作

c语言中的移位操作

ID:17023070

大小:73.50 KB

页数:25页

时间:2018-08-26

c语言中的移位操作_第1页
c语言中的移位操作_第2页
c语言中的移位操作_第3页
c语言中的移位操作_第4页
c语言中的移位操作_第5页
资源描述:

《c语言中的移位操作》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、C语言中的移位操作时间:2010-12-08C语言中的移位操作,内容不多。不过有些地方你不注意,就疏忽了。先做两个小题先。(1)unsignedcharx=3;x<<1是多少?x>>1是多少?(2)charx=3;x<<1是多少?x>>1是多少?(3)charx=-3;x<<1是多少?x>>1是多少?3写成二进制数是00000011;-3写成二进制数是(补码)11111101。程序执行的时候,操作的是数值的编码表示,也就是数值在内存中的二进制表示。比如说,程序取-3的时候,就去取11111101。(1)对无符号数3来说,x<<1往左移一位,最左边的位移掉了,最右边的移进来的位补零

2、。变成00000110,所以结果是6;x>>1往右边移一位,由于是无符号数,所以逻辑右移,最右边一位移掉,最左边移进来的位补零,变成00000001,所以结果是1。(2)对于有符号数3来说,x<<1往左移一位,最左边的位移掉了,最右边的移进来的位补零。变成00000110,所以结果是6;x>>1往右边移一位,由于是有符号数,可能发生逻辑右移,也可能发生算术右移,这一点,C标准并没有明确地指定是使用逻辑右移还是算术右移。但大多数的机器都使用算术右移,变成00000001,所以结果还是1。但是请注意,这只是说大多数的机器是这样的,你敢保证自己不会碰到特殊情况吗?(3)对于有符号数-3

3、来说,x<<1往左移一位,最左边的位移掉了,最右边的移进来的位补零。变成11111010,结果是-6。往右移一位,由于是有符号数,可能发生逻辑右移,也可能发生算术右移。大多数机器使用算术右移,变成11111110,结果是-2。总结:左移时总是移位和补零。右移时无符号数是移位和补零,此时称为逻辑右移;而有符号数大多数情况下是移位和补最左边的位(也就是补最高有效位),移几位就补几位,此时称为算术右移。附打印内存中字节编码的代码:voidprint_char(charx){ unsignedchar*bp=(unsignedchar*)&x; intsize=sizeof(x); fo

4、r(inti=0;i

5、己实践实践阿。C的优势时间:2010-11-24C的优势汇编程序同样需要调用子程序(函数),抛开语言的差异,其逻辑结构应该是一样的。同样的汇编也需要“大量”使用堆栈,这一点汇编没有任何优越性。包括所有的C51在内的大多数单片机的C语言都不是在堆栈上传递函数,而是由编译器静态分配。由于C语言更加接近自然语言,如果编译器没有BUG,同样结构下C语言一定比汇编可靠。最后一句:C的局部变量是可以覆盖的,汇编的所有变量都是全局的,C不仅仅效率高,而且因为局部变量的不可见性所以更可靠。c代码--快速排序问题时间:2010-11-24csdn博客邹勇军voidquicksort(sqlistl

6、,intlow,inthigh){inti,j;if(lowl.r[0].key)--j;if(i

7、view.Article26threview(a)theCCRAcompliance,whethercopiesofchecks;(B)whetherdoubleinvestigation;(C)submissionofprogramcompliance,investigationorexaminationofwhetherviewsareclear;(D)theborrower,guarantorloans}}C语言计算奖金发放实例时间:2010-11-11企业发放的奖金根据利

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。