A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

虽然在平常的开发中很少用到Java的这三个操作符,但是今天遇到了,有必要研究研究。本质上没有什么难的。自己写了几行代码,用作测试,下面直接上代码:



  • System.out.printf("a = 0x%x \n", a);



  •         int b = a >> 4;



  •         System.out.printf("b = 0x%x \n", b);



  •         int c = a >>> 4;



  •         System.out.printf("c = 0x%x \n", c);



  •         int d = a << 4;



  •         System.out.printf("d = 0x%x \n", d);


然后运行直接得到结果如下:



  • a = 0x80008000



  • b = 0xf8000800



  • c = 0x8000800



  • d = 0x80000


这里a = 0x80008000 由整数表示方法知道,该数为一个负数-2147450880,分析输出结果可以知道。

1: >> 运算符用于有符号的右移,又叫做算数右移, 在移动过程中,最高位补符号位。

2:>>>运算符用于无符号的右移,在移动过程中,最高位补0.

3:<< 运算福用户左移,这里没有符号的概念,左移后,最低位补0.

需要注意的是java中不支持<<<运算符。


1 个回复

倒序浏览
奈斯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马