一、Java运算符知识
1.逻辑运算符
- && : 等同于and,并且
- || :等同于or,或者
- ! : 取反
2.位运算符
- & :“位与”运算符,只有当2个操作数都是true的时候结果才为true,其他情况都是false。
- | :“位或”运算符,只有当2个操作数都是false的时候结果才是false,其他情况都是true。
- ~:“位非”运算符,如果位为0结果为1,如果位为1,结果为0。
- ^ : “位异或”运算符,将2个数字转化为二进制,高位开始比较,相同则为0,不相同为1。
3.移位运算符
- <<:“左移位”运算符:1<<i,就是将1的二进制向左移动i位,低位补零。i=5 : 100000=32。
- >>:"右移位"运算符:1>>i,就是将1的二进制向右移动i位,高位补零。i=5 : 000000=0。
二:程序
/**
*
* @param num 要化为二进制的数据源
* @param digits 保留多少位
* @return 生成的digits位二进制
*/
public static String toBinary(int num, int digits) {
//将无符号数1,向左移动digits位,低位补零。
// “|”:0|1=1;1|1=1;0|0=0.
int value = (1 << digits) | num;
String bs = Integer.toBinaryString(value);
return bs.substring(1);
}
public static void main(String[] args) {
String s = toBinary(129, 7);
System.out.println(s);
}