java 使用查表法将十进制转换成十六进制其他进制
2015-08-03 19:14
621 查看
/* *Copyright (c) 2014, 烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作者:张旺华 *完成日期: 2015 年 8 月 3 日 *版本号:v1.0 * *问题描述:对给定整数60,获取其16进制表现形式 *什么是16进制:数据的一种表象形式, *原理:将二进制只的4位为一个16进制单位。 *咋获取每四位呢? 其实就是获取四位中的1 可以通过&运算的方式完成 *如何获取下次啊四位呢? 可以通过无符号右移4位 */ //代码: package zhuan; public class chuan_16 { public static void main(String[] args){ int hum=364; String str_hex=toHex(hum); System.out.println(str_hex); } public static String toHex(int num){ //1、建立表 char []chs={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; //2、创建临时容器 char []arr=new char[8]; //3、创建操作临时容器的脚标 int index=arr.length; while(num!=0){ //对num进行&运算 int temp=num&15; arr[--index]=chs[temp]; num=num>>>4; } /* for(int i=0;i<8;i++) { //对变量值得4位进行提取获得16进制位值,并且赋值给变量temp int temp=num&15; if(temp>9) //对提取的值进行存储,如大于9,转换为字母 chs[7-i]=(char)(temp-10+'A'); else //对提取的值进行存储,如不小于9,为数字字符; chs[7-i]=(char)(temp+'0'); num=num>>>4;//变量值进行右移4位; } int i=0; for(;i<chs.length;i++){ if(chs[i]==0) continue; else break; } System.out.print("0x"); for(;i<chs.length;i++){ System.out.print(chs[i]); } //以上太过于复杂 */ return "0x"+toString(arr,index); } //定义一个功能,将字符数组转成字符串 public static String toString(char []arr,int index){ String temp=""; for(int i=index;i<arr.length;i++){ temp=temp+arr[i]; } return temp; } }
运行结果:
十进制转二进制
package zhuan; public class chuan_16 { public static void main(String[] args){ int hum=364; String str_hex=toHex(hum); System.out.println(str_hex); } public static String toHex(int num){ //1、建立表 char []chs={'0','1'}; //2、创建临时容器 char []arr=new char[32]; //3、创建操作临时容器的脚标 int index=arr.length; while(num!=0){ //对num进行&运算 int temp=num&1; arr[--index]=chs[temp]; num=num>>>1; } /* for(int i=0;i<8;i++) { //对变量值得4位进行提取获得16进制位值,并且赋值给变量temp int temp=num&15; if(temp>9) //对提取的值进行存储,如大于9,转换为字母 chs[7-i]=(char)(temp-10+'A'); else //对提取的值进行存储,如不小于9,为数字字符; chs[7-i]=(char)(temp+'0'); num=num>>>4;//变量值进行右移4位; } int i=0; for(;i<chs.length;i++){ if(chs[i]==0) continue; else break; } System.out.print("0x"); for(;i<chs.length;i++){ System.out.print(chs[i]); } //以上太过于复杂 */ return toString(arr,index); } //定义一个功能,将字符数组转成字符串 public static String toString(char []arr,int index){ String temp=""; for(int i=index;i<arr.length;i++){ temp=temp+arr[i]; } return temp; } }
运行结果:
知识点运用及学习心得:
使用查表法使得程序更加简单。
相关文章推荐
- java环境搭建
- java 实现线程同步的方式有哪些
- java_ EngorgeSnake
- springMVC 体验springMVC
- java 学习笔记--------改进后的登录界面
- [转载] Java中动态加载jar文件和class文件
- java中两个空字符串相加, 等于什么? (我说的空字符串是指null)
- protobuf-javanano protoc 配置时注意事项
- 简单熟悉eclipse
- java动态代理和cglib
- Java connect to MySQL through JDBC
- Java Mybatis Plugin插件实现分表路由规则
- JavaWeb基础学习之servlet
- 【Spring】Spring&WEB整合原理及源码分析
- Java实现Zip压缩与解压(解决中文乱码问题)
- Struts2入门+Hello Word实例
- JAVA所有的基本类及方法 复习笔记
- java Socket 连接 FTP
- Java垃圾回收机制
- Spring Timer实现