可以把java中十进制数用代码直接转为java输出16进制数吗?

1.&字节转10进制
直接使用(int)类型转换。
* 字节转10进制
public static int byte2Int(byte b){
int r = (int)
2.&10进制转字节
直接使用(byte)类型转换。
* 10进制转字节
public static byte int2Byte(int i){
byte r = (byte)
3.&字节数组转16进制字符串
对每一个字节,先和0xFF做与运算,然后使用Integer.toHexString()函数,如果结果只有1位,需要在前面加0。
* 字节数组转16进制字符串
public static String bytes2HexString(byte[] b) {
String r = "";
for (int i = 0; i & b. i++) {
String hex = Integer.toHexString(b[i] & 0xFF);
if (hex.length() == 1) {
hex = '0' +
r += hex.toUpperCase();
4.&16进制字符串转字节数组
这个比较复杂,每一个16进制字符是4bit,一个字节是8bit,所以两个16进制字符转换成1个字节,对于第1个字符,转换成byte以后左移4位,然后和第2个字符的byte做或运算,这样就把两个字符转换为1个字节。
* 字符转换为字节
private static byte charToByte(char c) {
return (byte) "ABCDEF".indexOf(c);
* 16进制字符串转字节数组
public static byte[] hexString2Bytes(String hex) {
if ((hex == null) || (hex.equals(""))){
return null;
else if (hex.length()%2 != 0){
return null;
hex = hex.toUpperCase();
int len = hex.length()/2;
byte[] b = new byte[len];
char[] hc = hex.toCharArray();
for (int i=0; i& i++){
int p=2*i;
b[i] = (byte) (charToByte(hc[p]) && 4 | charToByte(hc[p+1]));
5.&字节数组转字符串
直接使用new String()。
* 字节数组转字符串
public static String bytes2String(byte[] b) throws Exception {
String r = new String (b,"UTF-8");
6.&字符串转字节数组
直接使用getBytes()。
* 字符串转字节数组
public static byte[] string2Bytes(String s){
byte[] r = s.getBytes();
7.&16进制字符串转字符串
先转换成byte[],再转换成字符串。
* 16进制字符串转字符串
public static String hex2String(String hex) throws Exception{
String r = bytes2String(hexString2Bytes(hex));
8.&字符串转16进制字符串
先转换为byte[],再转换为16进制字符串。
* 字符串转16进制字符串
public static String string2HexString(String s) throws Exception{
String r = bytes2HexString(string2Bytes(s));
main函数:
public static void main(String[] args) throws Exception{
byte b1 = (byte) 45;
System.out.println("1.字节转10进制:" + byte2Int(b1));
int i = 89;
System.out.println("2.10进制转字节:" + int2Byte(i));
byte[] b2 = new byte[]{(byte)0xFF, (byte)0x5F, (byte)0x6, (byte)0x5A};
System.out.println("3.字节数组转16进制字符串:" + bytes2HexString(b2));
String s1 = new String("1DA47C");
System.out.println("4.16进制字符串转字节数组:" + Arrays.toString(hexString2Bytes(s1)));
System.out.println("5.字节数组转字符串:" + bytes2String(b2));
System.out.println("6.字符串转字节数组:" + Arrays.toString(string2Bytes(s1)));
System.out.println("7.16进制字符串转字符串:" + hex2String(s1));
String s2 = new String("Hello!");
System.out.println("8.字符串转16进制字符串:" + string2HexString(s2));
运行结果:
1.字节转10进制:45
2.10进制转字节:89
3.字节数组转16进制字符串:FF5F065A
4.16进制字符串转字节数组:[29, -92, 124]
5.字节数组转字符串:?_Z
6.字符串转字节数组:[49, 68, 65, 52, 55, 67]
7.16进制字符串转字符串:?|
8.字符串转16进制字符串:F21
阅读(...) 评论()第七下载是国内最新、最齐、最安全的软件下载基地!
当前位置:
牛牛进制转换器是一款简便好用的2进制,8进制,10进制,16进制数...
授权:免费软件类型:计算器类评分:8.0环境:WinXP, Win2008, Win7, Win8语言:国产软件时间:
实现十进制转换为其他任意进制的JAVA代码
日 & 作者:佚名 & 来源:本站整理 & 浏览:440 & 评论: &
十进制是人们通常使用的。因为它的特点有两个:有0,1,2&.9十个基本数字组成,十进制数运算是按&逢十进一&的规则进行的。那么要如何才JAVA代码中实现十进制转换其他进制的代码呢?小面小编就跟大家分享一下JAVA的代码。
public class Change { /*转为16进制*/ static void cha_16(int n) { if(n &= 16) cha_16(n/16); if(n%16 & 10)System.out.print(n%16); else System.out.print((char)(n%16 + 55)); } /*转为2进制*/ static void cha_2(int n) { if(n &= 2) cha_2(n/2); System.out.print(n%2); } /*转为8进制*/ static void cha_8(int n) { if( n &= 8) { cha_8(n/8); System.out.print(n%8); } else System.out.print(n); } /*主程序入口*/ public static void main(String[] args) { int a=27,b=9,c=19; /*定义输入的转换数值*/ System.out.print("十进制数"+a+"=&十六进制输出:"); cha_16(a); System.out.println(); /*换行*/ System.out.print("十进制数"+b+"=&二进制输出:"); cha_2(b); System.out.println(); System.out.print("十进制数"+c+"=&八进制输出:"); cha_8(c); }}
本文地址:实现十进制转换为其他任意进制的JAVA代码由整理并发布,欢迎转载!
1155066491357664556804934932557322823061227310265472489821834200162001119783
387 KB647 KB11 KB19.61 MB660 KB2.04 MB108 KB1.99 MB75.84 MB99.06 MB放一个自己改进的10进制转16进制源码【java吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:648,873贴子:
放一个自己改进的10进制转16进制源码收藏
表示自己小白边看视频边学的看视频的时候对里面的内容加点自己的想法
海运集装箱 锦江航运
哦~~不是有现成的嘛
class Tento16{public static void main(String[]args)
//入口{change(60);
//使用方法}public static void change(int num)
//方法:进制改变{for(int x=0;x&8;x++)
//一个数存放在电脑以8*4形式{int op=(num&15&&28-x*4)&&28-x*4;
//从最高四位进行与计算,每次结束后与数右移28-4*x位int sum=0;
//去掉首位无用的数字零sum=sum+
if(op!=0||sum!=0)
//判断首位是否为零{if(op&9)
//十六进制数&9变成字母后打印{op=op-10+'A';System.out.print((char)(op));}else if(op&=9)
//十六进制数&9直接打印{System.out.print(op);}}}}}/*反思:相较于视频中的程序,添加了去除首位上的0元素功能视频将输入数进行与运算
我将与数进行与运算没有引用未学到的知识:StringBuffer
就顺序转换没有写负数功能语句比较多*/
改版后的,而且可以处理负数
青铜星玩家
百度移动游戏玩家均可认证(限百度账号),
这是String里面的源码,shift是2的多少次数。比如2的4次方为16,所以shift为4
青铜星玩家
百度移动游戏玩家均可认证(限百度账号),
登录百度帐号推荐应用

我要回帖

更多关于 java进制转换代码 的文章

 

随机推荐