进制转换是常常需要的一种数据处理,在java中的一些类中封装了具有转换功能的方法,这个不做介绍。其实,进制之间的转化是通过先位异或&,再位移动>>>的方式实现的。

例如,对于一个十进制的整数而言,Int整型占4个字节,每一个字节为8个bit位,所以整型数据有32位bit。将整型转换为二进制,需要先将基数num=num&1,然后将32位bit右移>>>1位,直到num!=0条件不满足即可
将整型转换为八进制,需要先将基数num=num&7,然后将32位bit右移>>>3位,直到num!=0条件不满足即可
将整型转换为十六进制,需要先将基数num=num&15,然后将32位bit右移>>>4位,直到num!=0条件不满足即可
 
通过查表法进行进制的转换具体实例如下:
public class ToBinTest2
{ //十进制>>>>>二进制
public static void toBin(int n)
{
trans(n,,);
} //十进制>>>>>十六进制
public static void toHex(int n)
{
trans(n,,);
} //十进制>>>>>八进制
public static void toOtc(int n)
{
trans(n,,);
} //转换过程
public static void trans(int x,int base,int offset)
{
if(x==)
{
System.out.print();
return;
}
char[] chs = {'','','','','','','','','','','A','B','C','D','E','F'};
char[] arr = new char[]; //定义一个临时的存储容器,(一个整型数据占四个八位)
int pos = arr.length; //定义一个指针移动
while(x!=)
{
int temp = x & base;
arr[--pos] = chs[temp];
x = x >>> offset;
}
for(int i = pos; i <arr.length; i++)
{
System.out.print(arr[i]);
}
System.out.println();
} //主函数测试
public static void main(String[] args)
{
int num;
java.util.Scanner sc = new java.util.Scanner(System.in);
System.out.print("please enter a integer number:");
num = sc.nextInt();
toBin(num);
toHex(num);
toOtc(num);
} }
 
 

Java:进制转换的更多相关文章

  1. Java进制转换, 数据类型, 运算符

    1:进制转换 转换规则: 先把数据的每一位上的系数乘以对应基数的次幂(低位从零开始),然后相加即可 十进制到其他进制 规则:除基取余,直到商为0,最后将余数反转 十进制到二进制: 除2取余,直到商为0 ...

  2. java进制转换(无视正负数的差别)

    最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤其是对于负数这一方面. 下面和大家分享一下,这里只写了十进制到二进制的转换,其实都是同样的道理 public class Test1 { pub ...

  3. Java 进制转换(二进制(负),八进制,十进制,十六进制),位运算、逻辑运算(2)

    负数的二进制表现形式:其实就是该数的绝对值取反+1. 进制转换(二进制,八进制,十进制,十六进制),原理解析 十六进制的表现形式: (2)(与.异或.左移.右移.三元运算符)

  4. 初学java进制转换方面补充学习

    进制转换: 基础: ​ 二进制用的数为:0/1 ​ 八进制用的数为:0/1/2/3/4/5/6/7 ​ 十进制用的数为:0/1/2/3/4/5/6/7/8/9 ​ 十六进制用的数为:0/1/2/3/4 ...

  5. Java进制转换示例

    收藏的代码,以备查询之用.进制之间转换都是以十进制作为中间层的. int os = 16; //十进制转成十六进制: Integer.toHexString(os); //十进制转成八进制 Integ ...

  6. java进制转换代码

    定义十进制的数直接写,定义8进制的数以0开头,定义二进制的数以0b开头,定义十六进制的数以0x开头需要将十进制的数以二进制的数表示出来可以参照下例: int a = 10; System.out.pr ...

  7. Java进制转换

    其他转10进制 System.out.println(Integer.parseInt("10", 2));// bin System.out.println(Integer.pa ...

  8. java 进制转换

    class Dec2XXX { public static void main(String[] args) { toBin(6); toHex(6); toOct(6); } /*10to2*/ p ...

  9. JAVA基础学习之String、StringBuffer、StringBuilder、基本数据类型的使用、整形进制转换、集合Collection、Vector、ArrayList、LinkedList、HashSet、TreeSet等(3)

    主函数类MainDemo.java package com.itcast.test20140109; import java.util.ArrayList; import java.util.Coll ...

  10. 《java版进制转换》

    import java.util.Scanner; class 十进制转成十六进制_2 { public static void main(String[] args) { int num = 0; ...

随机推荐

  1. gameObject, vector and transform

    调用其它组件中成员 通过GameObject(游戏物体). Base class for all entities in Unity scenes.  是Unity场景里面所有实体的基类. 可以理解为 ...

  2. R语言绘图002-页面布局

    par().layout().split.screen()函数 1. par()函数的参数详解 函数par()可以用来设置或者获取图形参数,par()本身(括号中不写任何参数)返回当前的图形参数设置( ...

  3. cygwin and its host machine

    Senario 本来我是想要修改下 machine name 在Ubuntu中的步骤是这样的 1 sudo hostname newMechineName 2 sudo vi /etc/hostnam ...

  4. 【BZOJ】【2005】【NOI2010】能量采集

    欧拉函数 玛雅,我应该先看看JZP的论文的……贾志鹏<线性筛法与积性函数>例题一 这题的做法……仔细想下可以得到:$ans=2*\sum_{a=1}^n\sum_{b=1}^m gcd(a ...

  5. 【BZOJ】【3171】【TJOI2013】循环格

    网络流/费用流 最后能走回出发点……说明全部是环= = 而二分图上的环说明什么呢……完备匹配 对于每个点,它都有四个可能的匹配点,且已知它已经(伪)匹配的一个点,那么我们于已知每条(伪)匹配边,我们连 ...

  6. Notes on the Dirichlet Distribution and Dirichlet Process

    Notes on the Dirichlet Distribution and Dirichlet Process In [3]: %matplotlib inline   Note: I wrote ...

  7. 帝国cms无法注册登录快速解决方法 附路径

    帝国cms安装相对比较简单,一路next,一般从网上下载的系统都会带一些数据,恢复备份数据后,清除缓存,更新数据,一个copy版的网站就出来了.但是为了se的友好需要改动很多地方,不然很容易被认为是s ...

  8. Unity--截取屏幕任意区域

    原地址:http://blog.csdn.net/tanmengwen/article/details/8501612 void Update () { if(Input.GetKeyDown(Key ...

  9. Sqli-labs less 27

    Less-27 本关主要考察将union,select和26关过滤掉的字符.此处我们依旧和26关的方式是一样的,只需要将union和select改为大小写混合就可以突破. 示例:127.0.0.1/s ...

  10. Android中 ListView 详解(二)

    本文版权归 csdn noTice501 所有,转载请详细标明原作者及出处,以示尊重! 作者:noTice501 原文:http://blog.csdn.net/notice520/article/d ...