1 / 13
文档名称:

移位运算.doc

格式:doc   大小:30KB   页数:13页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

移位运算.doc

上传人:zhufutaobao 2020/2/5 文件大小:30 KB

下载得到文件列表

移位运算.doc

文档介绍

文档介绍:移位运算java的移位运算byzjq一基本概念所有的整数类型以二进制数字位的变化及其宽度来表示。例如,byte型值42的二进制代码是00101010,其中每个位置在此代表2的次方,在最右边的位以20开始。向左下一个位置将是21,或2,依次向左是22,或4,然后是8,16,32等等,依此类推。因此42在其位置1,3,5的值为1(从右边以0开始数);这样42是21+23+25的和,也即是2+8+32。所有的整数类型(除了char类型之外)都是有符号的整数。这意味着他们既能表示正数,又能表示负数。Java使用大家知道的2的补码(two'scomplement)这种编码来表示负数,也就是通过将与其对应的正数的二进制代码取反(即将1变成0,将0变成1),然后对其结果加1。例如,-42就是通过将42的二进制代码的各个位取反,即对00101010取反得到11010101,然后再加1,得到11010110,即-42。要对一个负数解码,首先对其所有的位取反,然后加1。例如-42,或11010110取反后为00101001,或41,然后加1,这样就得到了42。如果考虑到零的交叉(zerocrossing)问题,你就容易理解Java(以及其他绝大多数语言)这样用2的补码的原因。假定byte类型的值零用00000000代表。它的补码是仅仅将它的每一位取反,即生成11111111,它代表负零。但问题是负零在整数数学中是无效的。为了解决负零的问题,在使用2的补码代表负数的值时,对其值加1。即负零11111111加1后为100000000。但这样使1位太靠左而不适合返回到byte类型的值,因此人们规定,-0和0的表示方法一样,-1的解码为11111111。尽管我们在这个例子使用了byte类型的值,但同样的基本的原则也适用于所有Java的整数类型。因为Java使用2的补码来存储负数,并且因为Java中的所有整数都是有符号的,这样应用位运算符可以容易地达到意想不到的结果。例如,不管你如何打算,Java用高位来代表负数。为避免这个讨厌的意外,请记住不管高位的顺序如何,它决定一个整数的符号。二位逻辑运算符位逻辑运算符有“与”(AND)、“或”(OR)、“异或(XOR)”、“非(NOT)”,分别用“&”、“|”、“^”、“~”表示,4-3表显示了每个位逻辑运算的结果。在继续讨论之前,请记住位运算符应用于每个运算数内的每个单独的位。表4-3位逻辑运算符的结果A0101B0011A|B0111A&B0001A^B0110~A1010按位非(NOT)按位非也叫做补,一元运算符NOT“~”是对其运算数的每一位取反。例如,数字42,它的二进制代码为:00101010经过按位非运算成为11010101按位与(AND)按位与运算符“&”,如果两个运算数都是1,则结果为1。其他情况下,结果均为零。看下面的例子:0010101042&00001111150000101010按位或(OR)按位或运算符“|”,任何一个运算数为1,则结果为1。如下面的例子所示:0010101042|00001111150010111147按位异或(XOR)按位异或运算符“^”,只有在两个比较的位不同时其结果是1。否则,结果是零。下面的例子显示了“^”运算符的效果。这个例子也表明了XOR运算符的一个有用的属性。注意第二个运算数有数字1的位,42对应二进制代码的对应位是如何被转换的。第二个运算数有数字0的位,第一个运算数对应位的数字不变。当对某些类型进行位运算时,你将会看到这个属性的用处。0010101042^00001111150010010137位逻辑运算符的应用下面的例子说明了位逻辑运算符://{publicstaticvoidmain(Stringargs[]){Stringbinary[]={"0000","0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110","1111"};inta=3;//0+2+1or0011inbinaryintb=6;//4+2+0or0110inbinaryintc=a|b;intd=a&b;inte=a^b;intf=(~a&b)|(a&~b);intg=~a&0x0f;("a="+binary[a]);("b="+binary[b]);("a|b="+binary[c]);("a&b="

最近更新

2024年小学生文明安全演讲稿 6页

双频带低噪声放大器的研究和设计的开题报告 2页

双进给珩磨头的结构优化的开题报告 2页

2024年小学生安全宣传演讲稿 22页

第六章细胞的能量转换 43页

2024年小学生周记(精华10篇) 10页

2024年小学生周记合集[9篇] 7页

2024年小学生入队申请书15篇 9页

原发性甲状腺功能亢进症并发甲状腺癌的临床病.. 2页

第八章泌尿系统疾病 34页

2024年小学班班主任工作总结15篇 54页

2024年小学班主任简洁个人总结(精选7篇) 10页

2024年小学班主任德育工作计划合集15篇 43页

卫星光通信捕获跟踪技术研究的开题报告 2页

南环公司客户营销管理系统的设计与实现中期报.. 2页

南昌市户外儿童活动空间现状分析与对策研究的.. 2页

2024年小学校长辞职报告(通用15篇) 19页

单幅运动模糊图像复原技术研究的开题报告 2页

2024年小学新教师的自我介绍 3页

2024年小学数学骨干教师工作总结(精选9篇) 37页

2024年小学数学老师应聘求职信范文(精选10篇.. 16页

2023年消防救援站党支部工作总结 4页

慢性胃炎中医症候评分表格模板2 3页

教师心得体会师德感悟篇范文2023年 9页

学校食堂6s管理内容和标准四篇 51页

夹江陶瓷产业发展历程和基本概况 5页

超声科质量控制评分表(共1页) 1页

高速铁路桥梁缺陷整治方案 56页

尊师开示 7页

十五种解经讲道法(1) 55页