java二进制,运算符算法说明
2015-12-09 14:44
363 查看
int 10的二进制:1010,
算法为1*2^3+0*2^2+1*2^1+0*2^0=10;
对于有负号的数
二进制的最高位时符号位:0表示正数,1表示负数
正数的原码,反码,补码都一样
负数的反码=它的原码符号位不变,其它位取反
负数的补码=它的反码+1
0的反码,补码都是0
java中的数都是有符号的
例:10二进制:1010;
-10 原码符号位不变,其它位取反变成11111111111111111111111111111010;
反码+1变成11111111111111111111111111111011
java中有3个移位运算符
>> 算术右移:低位溢出,符号位不变,并用符号位补溢出的高位
10>>1 二进制1010向右移一位变成101,结果为1*2^2+0*2^1+1*2^0=5;所以右移结果都是原数除以几次2,本例就是10除以一次2为5;
左移就是与上面的右移相反
<<算术左移:符号位不变,低位补0
>>>逻辑右移:低位溢出,高位补0
按位与运算符“&”,如果两个运算数都是1,则结果为1。其他情况下,结果均为零。看下面的例子:
int a=113; ---->二进制:1110001
int b=111; ---->二进制:1101111
a&b
结果为---------->二进制:1100001 运算成整型为97
按位或运算符“|”,任何一个运算数为1,则结果为1。如下面的例子所示:
int a=113; ---->二进制:1110001
int b=111; ---->二进制:1101111
a|b
结果为---------->二进制:1111111 运算成整型为127
按 位异或运算符“^”,只有在两个比较的位不同时其结果是
1。否则,结果是零。下面的例子显示了“^”运算符的效果。这个例子也表明了XOR 运算符的一个有用的属性。注意第二个运算数有数字1的位,42对应二进制代码的对应位是如何被转换的。第二个运算数有数字0的位,第一个运算数对应位的数 字不变。当对某些类型进行位运算时,你将会看到这个属性的用处
int a=113; ---->二进制:1110001
int b=111; ---->二进制:1101111
a^b
结果为---------->二进制:0011110 运算成整型为127
算法为1*2^3+0*2^2+1*2^1+0*2^0=10;
对于有负号的数
二进制的最高位时符号位:0表示正数,1表示负数
正数的原码,反码,补码都一样
负数的反码=它的原码符号位不变,其它位取反
负数的补码=它的反码+1
0的反码,补码都是0
java中的数都是有符号的
例:10二进制:1010;
-10 原码符号位不变,其它位取反变成11111111111111111111111111111010;
反码+1变成11111111111111111111111111111011
java中有3个移位运算符
>> 算术右移:低位溢出,符号位不变,并用符号位补溢出的高位
10>>1 二进制1010向右移一位变成101,结果为1*2^2+0*2^1+1*2^0=5;所以右移结果都是原数除以几次2,本例就是10除以一次2为5;
左移就是与上面的右移相反
<<算术左移:符号位不变,低位补0
>>>逻辑右移:低位溢出,高位补0
按位与运算符“&”,如果两个运算数都是1,则结果为1。其他情况下,结果均为零。看下面的例子:
int a=113; ---->二进制:1110001
int b=111; ---->二进制:1101111
a&b
结果为---------->二进制:1100001 运算成整型为97
按位或运算符“|”,任何一个运算数为1,则结果为1。如下面的例子所示:
int a=113; ---->二进制:1110001
int b=111; ---->二进制:1101111
a|b
结果为---------->二进制:1111111 运算成整型为127
按 位异或运算符“^”,只有在两个比较的位不同时其结果是
1。否则,结果是零。下面的例子显示了“^”运算符的效果。这个例子也表明了XOR 运算符的一个有用的属性。注意第二个运算数有数字1的位,42对应二进制代码的对应位是如何被转换的。第二个运算数有数字0的位,第一个运算数对应位的数 字不变。当对某些类型进行位运算时,你将会看到这个属性的用处
int a=113; ---->二进制:1110001
int b=111; ---->二进制:1101111
a^b
结果为---------->二进制:0011110 运算成整型为127
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统