java学习进制转换之查表法
10进制转16进制,以及10进制转2进制,还有10进制转8进制,这些转换如果按照常规思路的话,会灰常的麻烦。
我们来看一下 10进制转16进制:
假如这里有一个十进制数字:35,我们的需求就是把这个35转成16进制的。
思路:先把35转换成二进制,然后二进制再转换16进制。

代码:
class SearchTable
{ public static void main(String[] args)
{ String[] s = searchTable(35,3,7); /**
*
*for(int i = 0; i< arr.length ; i++)
*{
*
* System.out.println(arr[i]);
*
*}
*/
for(int i = 0; i<8 ; i++)
{ System.out.print(s[i]); } } public static String[] searchTable(int num,int offset,int mask)
{ String[] table = {"","1","2","3","4","5","6","7","8","9","a","b","c","d","e"}; String[] output = new String[8]; int [] arrtemp = new int[8]; for(int i = arrtemp.length-1 ; i>=0 ; i--){ arrtemp[i] = num&mask; num = num>>>offset; output[i] =table[arrtemp[i]]; } return output;
} }
温馨提示,当写程序的时候尽量保证一个量变化否则,会把自己绕进去的。
/**
*反面示例
*/
class SearchTable
{ public static void main(String[] args)
{ String s = searchTable(35,3,7); /**
*
*for(int i = 0; i< arr.length ; i++)
*{
*
* System.out.println(arr[i]);
*
*}
*/
System.out.print(s); } public static String searchTable(int num,int offset,int mask)
{ String[] table = {"","1","2","3","4","5","6","7","8","9","a","b","c","d","e"}; String output = ""; int [] arrtemp = new int[8]; for(int i =0 ; i<arrtemp.length-1 ; i++){ arrtemp[i] = num&mask; num = num>>>offset;
System.out.println("---"+i+"--");
System.out.println(arrtemp[7-i]);
System.out.println(table[arrtemp[i]]);
System.out.println("---"+i+"--end"); output += table[arrtemp[i]]; } return output; } }
java学习进制转换之查表法的更多相关文章
- C语言:十进制进制转换为其他进制(思想:查表法)
// // main.c // Hex conversion // // Created by ma c on 15/7/22. // Copyright (c) 2015年 bjsxt. A ...
- Java基础-进制转换
Java基础-进制转换 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Java 程序中常用的进制 1>.十进制,由“0123456789” 这10个数字组成,逢十进一: ...
- Java:进制转换
进制转换是常常需要的一种数据处理,在java中的一些类中封装了具有转换功能的方法,这个不做介绍.其实,进制之间的转化是通过先位异或&,再位移动>>>的方式实现的. 例如,对于 ...
- 《java版进制转换》
import java.util.Scanner; class 十进制转成十六进制_2 { public static void main(String[] args) { int num = 0; ...
- java高精度进制转换
POJ1131 由于本题只有小数部分(整数部分均为0),故在进制转换的之后只能自己手写转换方法了. 8进制转换10进制的方法为,以0.75为例,应是7*8^-1 + 5*8^-2.所以呢,可以 ...
- Java的进制转换操作(十进制、十六进制、二进制)
2014-05-06 17:34 吴文付 最近由于工作上的需要,遇到进制转换的问题.涉及到的进制主要是 十进制,十六进制,二进制中间的转换. 这里整理一下.具体的计划为:封装一个转换类,一个测试类. ...
- Java 之进制转换
//十进制转十六进制 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scan ...
- C#,Java,C -循环冗余检验:CRC-16-CCITT查表法
C#代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ...
- java之进制转换
[转载]晨风�0�5�0�2�0�1�6�6 2014年03月08日 于 爱Java 发表 众所周知.程序世界计算机中采用的是二进制,一个数字可以用任意进制表示.所以看一个数据值的同时.还要观察它的进 ...
随机推荐
- 高效 css 整理
避免通用规则 请确保规则不以通用类型作为结束! 不要用标签名或 classes 来限制 ID 规则 如果规则的关键选择器为 ID 选择器,则没有必要为规则增加标签名.因为 ID 是唯一的,增加标签只会 ...
- CSS盒子模型小剖析
前段时间刚刚从C/S过度到B/S,提到B/S就不能说CSS,而说起CSS又不能落下盒子模型.在CSS诞生的时候就有了盒子模型的概念,网页中大部分的元素都能构成一个盒子模型,.盒子模型无非就是描述的元素 ...
- ZOJ 3903 Ant(公式推导)
这个公式推导过程是看的这位大牛的http://blog.csdn.net/bigbigship/article/details/49123643 扩展欧几里德求模的逆元方法: #include < ...
- Django模型之Meta选项详解
Django模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性.而可用的选项大致包含以下几类 abstract 这个属性是定义当前的模型是不是一个抽象类.所谓抽象类是不会对应数据 ...
- UVA - 11572 Unique Snowflakes
/* STLsort离散化==T 手工sort离散化==T map在线==T map离线处理c==A 240ms */ #include<cstdio> #include<map&g ...
- [Redis] C#中使用redis
C#中使用redis 首先打开Visual Studio建立一个简单的控制台应用程序,我这里暂时使用的VS2013的版本. 然后通过Nuget进行安装Redis常用组件ServiceStack.Red ...
- 【转】Windows环境下.NET 操作Oracle问题
目前,Windows操作系统可以分成两类,32位和64位(64位也区分x86_64位和Itanium ),同时Oracle客户端也做了同样的区分. 在安装和开发的过程中,经常会遇到一些问题,本文就总结 ...
- struts2中方法拦截器(Interceptor)的中的excludeMethods与includeMethods的理解
http://www.cnblogs.com/langtianya/archive/2013/04/10/3012205.html
- iOS如何准确获取通知
iOS获取通知需要注意以下三个地方iOS 设备收到一条推送(APNs),用户点击推送通知打开应用时,应用程序根据状态不同进行处理需在 AppDelegate 中的以下两个方法中添加代码以获取apn内容 ...
- Objective - C 中NSString (字符串)与C中的字符串转换问题
NSString是一个常用的类,NSString是原生支持unicode C中的字符串 比如char * a = "hello world"; 是utf8类型的, char* d ...