java位运算符
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java位运算符,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1302字,纯文字阅读大概需要2分钟。
内容图文
补码:
补码又称为二补数,就是就是将该数字作比特反相运算(即一补数或反码),再将结果加 1,一个负数可以由其相反数的补码来表示。补码的好处在于:两数之间的减法亦可表示为一个数与另一数补码之间的加法,从而只需使用加法电路和二补数电路即可完成各种有符号数的加减法。
e.g:有0011(3)和1111(-1),0011+1111=10010(2)
在n比特的二进制数中,最大整数为2n-1-1,最小负数为-2n-1,第n位为符号位。
计算补码:
如5用8位二进制数表示为0000 0101,则其一补数即反码为1111 1010,二补数为一补数加1,所以5的补码为1111 1011(-5)
说明:以e.g所示为例,0011+1111中的1111仅为-1的补码形式,而非15的二进制表达形式。
左移运算符:通用格式 value <<num num为左移的位数
运算法则:丢弃最高位,0进补最低位
对移位运算符来讲,右侧参数需要进行模32运算,前提是value为int型。
在数字没有溢出的前提下,左移一位相当于乘以2的一次放,左移n位相当于乘以2的n次方
当左移的运算数是short,或者byte类型时,左移后会自动转换成int型
右移运算符:value>>num
运算法则:低位舍去,高位补符号位
右移一位相当于除以2,右移n位相当于除以2的n次方
无符号右移 value>>>num
忽略符号位的扩张,0补最高位
无符号右移只对32位,64位值有意义
1
public
static
void
main(String args[]){
2
3
int i=1;
4 System.out.println(Integer.toBinaryString(i));
5 System.out.println(i<<3);
6 System.out.println(Integer.toBinaryString(i<<3));
7 System.out.println(i<<35);
8 System.out.println(Integer.toBinaryString(i<<35));
91011int t;
12int num = 0xFFFFFFE;
13 System.out.println("num="+num+"二进制表示为"+Integer.toBinaryString(num));
14for(t=0; t<4;t++) {
15 num = num << 1;
16 System.out.println("num="+num+"二进制表示为"+Integer.toBinaryString(num));
17 }
18 System.out.println("-32"+"二进制表示为"+Integer.toBinaryString(-32));
1920 }
原文:http://www.cnblogs.com/wpzy2311/p/4220055.html
内容总结
以上是互联网集市为您收集整理的java位运算符全部内容,希望文章能够帮你解决java位运算符所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。