进制转换函数和位运算

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
    

以上是关于进制转换函数和位运算的主要内容,如果未能解决你的问题,请参考以下文章

值类型取值范围与运算(&)或运算(|)非运算(~)异或运算(^)位运算和位枚举

python学习特辑——二进制和位运算篇

二进制原码反码补码和位运算

二进制和位运算

逻辑运算和位运算

江哥带你玩转C语言 | 09 - C语言进制和位运算