`
asiainfoywl
  • 浏览: 73548 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

JAVA的位移运算巧方法

    博客分类:
  • JAVA
阅读更多
左移操作: x << n
  x可以是byte, short, char, int, long基本类型, n(位移量)只能是int型

  编译器的执行步骤:

  1) 如果x是byte, short, char类型, 则将x提升为int;

  2) 如果x是byte, short, char, int类型, 则n被重新赋值(过程是:取n的补码的低5位再转成十进制的int值,相当对n取32模: n=n2);

  如果x是long型, 则n被重新赋值(过程是:取n的补码的低6位再转成十进制的int值,相当对n取64模: n=nd);

  (因为int类型为4个字节,即32位,移动32位将没有任何意义.对于long则是模64)

  3) 对x左移n个位数, 整个表达式产生一个新值(x的值不变);

  <<是左移符号,列x<<1,就是x的内容左移一位(x的内容并不改变)

  >>是带符号位的右移符号,x>>1就是x的内容右移一位,如果开头是1则补1,是0责补0,(x的内容并不改变).

  >>>是不带符号位的右移,x>>>1就是x的内容右移一位,开头补0(x的内容并不改变)

  补充说明:

  Java代码



// 左移: 向左移动,右边补0
  for (int i = 0;i < 8 ;i++)
  System.out.print( (1 << i) + " ");
// 右移: 向右移动,如果符号位(int型为32位)为0,左边补0,符号位为1,左边补1
  // 符号位为1的右移
  for (int i = 0;i < 8 ;i++)
  System.out.print( Integer.toHexString(0x40000000 >> i) + " ");
  output

  40000000 20000000 10000000 8000000 4000000 2000000 1000000 800000



 // 符号位为1的右移
  // 最高4位为1000, 右移1位,变成1100也就是c,
  for (int i = 0;i < 8 ;i++)
  System.out.print( Integer.toHexString(0x80000000 >> i) + " ");
分享到:
评论

相关推荐

    java位运算操作

    Java位运算操作 左位移 右位移 与或非的操作

    JAVA基础之java的移位运算

    但这样使1位太靠左而不适合返回到byte 类型的值,因此人们规定,-0和0的表示方法一样,-1的解码为11111111 。尽管我们在这个例子使用了byte 类型的值,但同样的基本的原则也适用于所有Java 的整数类型。 因为Java ...

    【循序渐进学.java】从入门到精通.第20讲-二进制.位运算.位移运算.zip

    绝对韩顺平老师的讲解视频!教学文件打包太大,就一个一个的上传了! avi格式的,最好用KMPlayer来播放,下载地址:https://www.kmplayer.com/home 后续还上传,韩顺平老师教学的源代码!

    java位运算加密示例

    通过位运算中的"^"异或运算符把字符串与一个指定的值进行异或运算,从而改变字符串每个字符的值,这样就可以得到一个加密后的字符串

    Java byte 位移操作 注意事项

    Java对byte 的 + – * / &gt;&gt; &gt;&gt;&gt; &lt;&lt; & | ^ (加,减,乘,除,右移,左移,无符号右移,位与,位或,位异或)操作,均会是首先将byte转化为int, 再行运算。这一事实可能导致多种问题:  假设我们想进行如下...

    文件移位加密与解密

    文件移位加密与解密 C语言实现 完整代码 截图显示

    java从入门到精通视频教程(全94讲)学习笔记整理(齐全).docx

    -二进制、位运算、位移运算 -集合 -集合 -集合 -集合补充 -异常 -面试题评讲 -布局管理器 -常用组件 -swing编程实战 -绘图技术.坦克大战2 -事件处理.坦克大战3 -事件监听.坦克大战4 -事件总结.坦克大战5 -线程.坦克...

    JavaScript中进行byte的计算(含java及js查表法生成crc的代码)

    网络资源的整合,以及自己摸索使用JavaScript进行byte计算的路,包括详细的文档,范例代码(java和js按算法crc16生成crc码),为下载其中资源,花费若干分,所以设定了下载分。谢谢大家!

    学通Java的24堂课

    3.8.6 基本功训练6——位移实现数字乘以2的8次幂 86 3.9 情景应用——拓展与实践 86 3.9.1 情景应用1——输出长方形面积 86 3.9.2 情景应用2——输出字节bit位的值 87 3.9.3 情景应用3——判断奇偶数 88 3.9.4 ...

    java编程基础,应用与实例

    3.6.3 String型对象与基本数据类型间的运算 25 3.7 运算符 25 3.7.1 逻辑非(!) 26 3.7.2 位非运算符(~) 26 3.7.3 符号运算符(+、-) 27 3.7.4 增减运算符(++、--) 27 3.7.5 算术运算符(+、-、*、/) 29...

    java8集合源码-product1:产品1

    java8 集合源码 一、JAVA技术栈 Spring ...位移运算 &lt;&lt; : 左移运算符,num &lt;&lt;1,相当于num乘以2 int n = 7; // 00000000 00000000 00000000 00000111 = 7 int a = n &lt;&lt; 1; // 00

    21天学通Java-由浅入深

    ”:非运算符 54 3.4.4 逻辑运算符总结 54 3.5 三元运算符 55 3.6 位运算符 55 3.6.1 “&”:按位与运算符 56 3.6.2 “|”:按位或运算符 56 3.6.3 “^”:按位异或运算符 57 3.7 位移运算符 57 3.7.1 “&gt;&gt;”:带...

    二进制一些笔记,可以看看,新手上路勿喷

    对于java二进制的一些笔记,位移运算,可以看看,新手上路勿喷

    矩阵位移法matlab代码-MDM:Matrixdisplacementmethod/矩阵位移法

    实现了矩阵位移法的计算机运算,包含以下功能: 单元刚度矩阵的计算 整体刚度矩阵的集成 求解线性代数方程组 求解病态线性方程组 绘制结构的内力图 保存各单元的杆端力向量 文件结构说明 输入文件结构说明 文件保存...

    Java模拟计算机的整数乘积计算功能示例

    主要介绍了Java模拟计算机的整数乘积计算功能,简单分析了计算机数值进制转换与通过位移进行乘积计算的原理,并结合具体实例给出了java模拟计算机成绩运算的相关操作技巧,需要的朋友可以参考下

    JavaScript基础和实例代码

    1.11 JavaScript与Java、Java applet 1.12 JavaScript的未来如何 1.13 本章小结 第2章 JavaScript语言入门 2.1 编程准备 2.1.1 编程术语 2.1.2 脚本执行顺序 2.1.3 大小写敏感 2.1.4 空白字符 2.1.5 分号 2.1.6 块 ...

    源文件程序天下JAVASCRIPT实例自学手册

    1.11 JavaScript与Java、Java applet 1.12 JavaScript的未来如何 1.13 本章小结 第2章 JavaScript语言入门 2.1 编程准备 2.1.1 编程术语 2.1.2 脚本执行顺序 2.1.3 大小写敏感 2.1.4 空白字符 2.1.5 分号 2.1.6 块 ...

    基于MATLAB平台的数字信号处理仿真演示系统.zip

    本设计带有一个丰富得GUI人机交互界面,一共包括4个部分,分别为:离散时间信号的卷积,基本函数的Z变换(单位阶跃信号,脉冲信号,斜变信号,正余弦信号,指数系列信号),Z变换的基本性质(线性,位移,z域… ...

    javascript基本语法

    :)、位移运算符(|,&,&lt;&lt;,&gt;&gt;,~,^)和字符串运算符(+)。 可能很多人不知道”===”是什么。 在这里,我为大家解释一下,在javascript中,“==”是等同运算符。 等同运算符的比较规则: 当两个运算数的类型不同时:...

Global site tag (gtag.js) - Google Analytics