快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

Java中的移位操作

Java中的位操作指定包括:& | ~ >> << >>>,前面几个都异常简朴,主要是以为操作比较轻易出错.
1.<<
逻辑左移,右边补0,符号位和其他位相同.
正数:
x<<1一般相称于2x,但是可能溢出.
溢出范围: 230~(231-1) 二进制表示 010000...000到01111....1111,移位后最高为变为1了,变成负数了.
负数:
x<<1一般也相称于2x,也有可能溢出.
溢出范围: -231~-(230+1)二进制表示10000...000到101111...1111,移位后最高为变成0了,变成正数了.

2.>>
算术右移,和上面的不对应,为正数时左边补0,为负数时左边补1.
x>>1,相称于x/2,余数被舍弃,因为这个是缩小,所以不会溢出.
不过有一点要注重: -1右移多少位都是-1.
另外舍弃的余数是正的, 3>>1=1 舍弃的余数是1.
-3>>1=-2 舍弃的余数也是1,而不是-1.
对于正数 x>>1和x/2相等
对于负数 x>>1和x/2不一定相等.

3.>>>
逻辑右移,这个才是和<<对应的
这个把符号位一起移动,左边补0
对于正数,>>>和>>是相同的
对于负数,右移之后就变成正数了.

可以使用Integer.toBinaryString(int i)来看01比特,更加直观.





返回类别: 教程
上一教程: [学习笔记]Thinking in Java (the 2nd edition) Study Note (4)
下一教程: 纯 jsp 操作服务器上的文本文件 [2]

您可以阅读与"Java中的移位操作"相关的教程:
· Java操作文本文件中的中文
· JAVA中使用JCOM操作OFFICE对象
· JAVA中的函数动态调用
· 漫谈Java中的中文问题
· Java中的类反射机制
    微笑服务 优质保证 索取样品