Java的进制转换操作(十进制、十六进制、二进制)
2014-05-06 17:34 吴文付
最近由于工作上的需要,遇到进制转换的问题。涉及到的进制主要是 十进制,十六进制,二进制中间的转换。
这里整理一下。具体的计划为:封装一个转换类,一个测试类。
1、十进制 转 十六进制 二进制:
//调用java自带的api
//测试十进制转16进制 2进制
System.out.println("十进制10转16进制为"+Integer.toHexString(10));
System.out.println("十进制10转二进制为"+Integer.toBinaryString(10));
十进制转换二进制十六进制
2、十进制字符串转 16进制 转 2进制
将字符串转为 十进制后参考方法1
System.out.println("字符串10转16进制为"+Integer.toHexString(Integer.parseInt("10")));
System.out.println("字符串10转二进制为"+Integer.toBinaryString(Integer.parseInt("10")));
十进制字符串转16转2
3、16转2转10
String h = "10000";
BigInteger srch = new BigInteger(h, 16); System.out.println("十六进制字符串10000转为10进制后为:"+srch.toString());//转换为10进制并输出结果
System.out.println("十六进制字符串10000转为2进制后为"+Integer.toBinaryString(Integer.parseInt(srch.toString())));
十六转2转10
2014-05-07 15:18 修正:
上面的转换使用了BigInteger对象,也可以不使用。
如下方式也可以
16-》2
可以如下:Integer.toBinaryString(Integer.parseInt("0xAA",16))
16-10:
Integer.parseInt("0xAA",16)
4、2转10转16
String b = "10000";
BigInteger srcb= new BigInteger(b,2);//转换为BigInteger类型
System.out.println("二进制字符串10000转为10进制后为:"+srcb);//转换为10进制并输出结果
System.out.println("二进制字符串10000转为16进制后为"+Integer.toHexString(Integer.parseInt(srcb.toString())));
2转10转16
5、字节数组转 16进制字符串
public static String BinaryToHexString(byte[] bytes){ String hexStr = "0123456789ABCDEF";
String result = "";
String hex = "";
for(int i=0;i<bytes.length;i++){
//字节高4位
hex = String.valueOf(hexStr.charAt((bytes[i]&0xF0)>>4));
//字节低4位
hex += String.valueOf(hexStr.charAt(bytes[i]&0x0F));
result +=hex+" "; //这里可以去掉空格,或者添加0x标识符。
}
return result;
}
byte[] 转16字符串
6、16进制字符串转 字节数组
public static byte[] HexStrToBytes(String str)
{
//如果字符串长度不为偶数,则追加0
if(str.length() % 2 !=0){
str = "0"+str;
} byte[] b = new byte[str.length() / 2];
byte c1, c2;
for (int y = 0, x = 0; x < str.length(); ++y, ++x)
{
c1 = (byte)str.charAt(x);
if (c1 > 0x60) c1 -= 0x57;
else if (c1 > 0x40) c1 -= 0x37;
else c1 -= 0x30;
c2 = (byte)str.charAt(++x);
if (c2 > 0x60) c2 -= 0x57;
else if (c2 > 0x40) c2 -= 0x37;
else c2 -= 0x30;
b[y] = (byte)((c1 << 4) + c2);
}
return b;
}
16字符串转字节数组
2014-05-06 18:49 完成测试。
直接上代码吧。注释已经很清楚了
工程地址:http://download.csdn.net/detail/douniwan123654/7305195
测试后截图:
Java的进制转换操作(十进制、十六进制、二进制)的更多相关文章
- C++进制转换(十进制转二进制、八进制、随意进制)
十进制转二进制: //十进制转二进制 #include<iostream> using namespace std; void printbinary(const unsigned int ...
- Java基础-进制转换
Java基础-进制转换 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Java 程序中常用的进制 1>.十进制,由“0123456789” 这10个数字组成,逢十进一: ...
- 《java版进制转换》
import java.util.Scanner; class 十进制转成十六进制_2 { public static void main(String[] args) { int num = 0; ...
- Java:进制转换
进制转换是常常需要的一种数据处理,在java中的一些类中封装了具有转换功能的方法,这个不做介绍.其实,进制之间的转化是通过先位异或&,再位移动>>>的方式实现的. 例如,对于 ...
- Java 之进制转换
//十进制转十六进制 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scan ...
- java高精度进制转换
POJ1131 由于本题只有小数部分(整数部分均为0),故在进制转换的之后只能自己手写转换方法了. 8进制转换10进制的方法为,以0.75为例,应是7*8^-1 + 5*8^-2.所以呢,可以 ...
- Java的进制转换
十进制转其它进制 其它进制转十进制 A进制转B进制可以将十进制作为中间媒介 Integer.toString(int i, int radix) 返回用第二个参数指定基数表示的第一个参数的字符串表示形 ...
- Java里进制转换(二进制、八进制、十进制、十六进制)
// 十进制转其它进制(二进制,八进制,十六进制) int k = 17; System.out.println(Integer.toBinaryString(k));// 转二进制 System.o ...
- java之进制转换
[转载]晨风�0�5�0�2�0�1�6�6 2014年03月08日 于 爱Java 发表 众所周知.程序世界计算机中采用的是二进制,一个数字可以用任意进制表示.所以看一个数据值的同时.还要观察它的进 ...
随机推荐
- POJ - 2336 Wireless Network
Description An earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical team) have ...
- ubuntu11.10server 安装redis-2.6.7
1.下载安装: 1 2 3 4 5 6 cd /tmp wget http://redis.googlecode.com/files/redis-2.6.7.tar.gz tar -zxf redis ...
- 2017 ZSTU寒假排位赛 #1
题目链接:https://vjudge.net/contest/147102#overview. A题:给出一堆的点,要找出两条垂直的直线,一条与x轴呈45度.-->使得所有的点到任意一条直线的 ...
- MySQL查询order by相减select相减的Sql语句
先看一张表 create_time是订单创建时间,pay_time是支付时间 现在我想按照订单完成耗时的时间进行排序,并且取出来的数据中直接算好了差值,怎么用Sql呢,请看 select id,tid ...
- EXCEL读写NPOI
1.第一步: 可以使用ExcelAutomation进行EXCEl文件的读写,但是需要电脑上安装EXCEL,对EXCEL版本有要求,速度慢,有安全性,并发性问题,不适合网站类项目. 第二种方法: NP ...
- jsp 获取cookie 的值的方法
Cookie cookies[]=request.getCookies(); //读出用户硬盘上的Cookie,并将所有的Cookie放到一个cookie对象数组里面 Cookie sCookie=n ...
- 文件夹添加 IIS 应用程序池用户权限
http://serverfault.com/questions/81165/how-to-assign-permissions-to-applicationpoolidentity-account ...
- photoshop基础教程视频-贺叶铭-传智播客-笔记
界面构成 1.菜单栏 2.工具箱 3.工具属性栏 4.悬浮面板 5.画布 ctrl+n 新建对话框 (新建画布) 画布200*200大小,是指以毫米为单位,当不说单位,默认是毫米. 打开对话框:ctr ...
- UML关系总结
用例图: 1.扩展关系:如果已有一个用例,在这个用例的基础(该用例是完整的)上加入新的动作形成了另一个用例,即后者是通过继承前者的属性并加入新的内容而来的,则前者通常称为通用化用例,后者常为扩展用例. ...
- 用扩展方法实现DevExpress-GridControl级联效果
首先,让我们先回顾下.Net中扩展方法的特征: 1. 必须在一个非嵌套.非泛型的静态类中: 2. 至少有一个参数(this 作前缀的参数): 3. 第一个参数必须附加this做前缀: 4. 第 ...