基本进制知识:
数制也称为计数制,是指用一组固定的符号和统一的规则来表示数值的方法。按进位的方法进行计数,称为进制计数制。在日常生活和计算机中采用的都是进位计数制。比较常用的是:二进制,八进制,十进制,十六进制。
十进制:这个没必要多说,因为日常生活中的进位计数制都是十进制。
二进制:计算技术中最广泛采用的一种数制,使用0和1表示数,进位规则是“逢二进一”,借位规则是“借一当二”。当数码很大时,书写起来很费事。
八进制:规则和二进制相似,用0~7表示数码,进位规则是“逢八进一”,借位规则是“借一当八”。
十六进制:规则和二进制以及八进制相似,用0~9,A~F(a~f)表示数码,进位规则是“逢十六进一”,借位规则是“借一当十六”。
之所以引进八进制和十六进制,主要是为了书写方便,在计算机中还是用二进制表示。
java中相关知识及代码:
十进制转换二进制的思想:把这个数除以2若为单数则为1,为偶数则为0,直到最后一个数为1为止。所以我们要做的就是用你给定的这个数除以2,如果结果为奇数则r=1,否则r=0;如此循环下去,直到这个数〉=1。
基础视频中代码:- class jinzhi
- {
- public static void main(String[] args)
- {
- toBin(6);
- toHex(60);
- }
- //十进制转化成二进制
- public static void toBin(int num)
- {
- StringBuffer sb= new StringBuffer ();//创建一个对象,能装数据的一个容器。
- while (num>0)
- {
- //System.out.println(num%2);
- sb.append(num%2);
- num=num/2;
- }
- System.out.println(sb.reverse());//reverse意思为反转
- }
- //十进制转化成十六进制
- public static void toHex (int num)
- {
- StringBuffer sb = new StringBuffer ();
- for(int x=0;x<8;x++)
- {
- int temp = num & 15;
- if (temp>=10)
- sb.append((char)(temp-10+'A'));
- else sb.append(temp);
- num=num>>>4;
- }
- System.out.println(sb.reverse());
- }
- }
复制代码 进制之间转换方法:
方法一:
java.lang.Integer类中有个parseInt方法,可以轻松实现各种进制转为十进制。
parseInt(String s, int radix)
例子:
parseInt("0", 10) ;returns 0
parseInt("-FF", 16) ;returns -255
parseInt("1100110", 2) ;returns 102
其中第二个参数为制定的基数,即第一个参数是几进制数。
方法二:
十进制转成十六进制:
Integer.toHexString(int i)
十进制转成 八进制
Integer.toOctalString(int i)
十进制转成二进制
Integer.toBinaryString(int i)
代码示例:
public class Test{
public static void main(String args[]){
int i=100;
String binStr=Integer.toBinaryString(i);
String otcStr=Integer.toOctalString(i);
String hexStr=Integer.toHexString(i);
System.out.println(binStr);
System.out.println(otcStr);
System.out.println(hexStr);
}
方法三:java中的Integer和long提供toString(int i, int radix)静态方法,可以将一个任意进制的整数转换为其他进制。
例子:
int otcStr = 0567;
int hexStr = oxAbcd;
int tenStr = 1000;
System.out.println(Integer.toString(otcStr,2));
System.out.println(Integer.toString(tenStr,16));
System.out.println(Integer.toString(hexStr,10));
补充,Integer和Long中的toString(int i)可以让其他进制转换成十进制。
方法四:
Integer或者Long中的valueOf(String str,int radix),第一个参数是String类型,第二个参数是指定前边的进制类型,该方法返回一个等于以下值的 Integer 对象:
new Integer(Integer.parseInt(s, radix))
例子:
将十六进制数转换成十进制:
Integer.valueOf("FFFF",16).toString()
我能想到的方法大概有以上几种,希望各位补充,修改。 |
|