进制转换函数和位运算
Posted 知道什么是码怪吗?
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进制转换函数和位运算相关的知识,希望对你有一定的参考价值。
进制转换(基本可以解决大部分的进制转换)
int p = 15;//long Long.toString(); Long.parseInt();
String str = Integer.toString(p, 2);// 前一个参数是10进制数,后一个数是想要转换的进制
System.out.println(str);
int q = Integer.parseInt(str, 2);// 后一个参数表示前一个字符串的进制,转换为10进制表示
System.out.println(q);
位运算
统计某个数字二进制当中1的个数
package arithmetic;
public class Main {
public static int lowbit(int n) {// 返回这个数二进制当中最后一位1表示的数
return n & -n;
}
public static void main(String args[]) {
int k = 15;
int count = 0;
System.out.println(Integer.toString(k, 2));
//方法1每次位移1位与1取与,求这个数二进制当中1的个数
while (k > 0) {
if ((k & 1) == 1)
count++;
k = k >> 1;
}
System.out.println(count);
//方法2,取末尾1,然后相减,减了几次说明有几个1
k = 15;
count = 0;
while (k > 0) {
k = k - lowbit(k);// 能够进行几次lowbit说明有几个1
count++;
}
System.out.println(count);
}
}
常用操作
//获取某个数二进制当中第K位的数字
number >> (k-1) & 1;
// 10 二进制---> 1010
// 10>>1 右移一位---> 101
//返回某个数最后一位1的大小
number & - number;
// 12 二进制---> 1100
// 12&-12 二进制---> 100 十进制----> 8
以上是关于进制转换函数和位运算的主要内容,如果未能解决你的问题,请参考以下文章