1、数组的进制转换

package com.vnb.javabase;public class ArrayTest {//16进制数转二进制public static void toHex(int num){//& 两两为1即为1//>>>无符号右移/*** eg.60*       0000-0000 0000-0000 0000-0000 0011-1100   60的二进制表示* &     0000-0000 0000-0000 0000-0000 0000-1111   15的二进制表示* &后的值   0000-0000 0000-0000 0000-0000 0000-1100          值为12即16进制的C*/StringBuffer sb = new StringBuffer();for (int i = 0; i < 8; i++) {int temp = num & 15;if(temp>9){sb.append((char)(temp-10+'A'));//强转成16进制}else{sb.append(temp);}num = num >>>4;}System.out.println(sb.reverse());//0000003C}//查表法转换成16进制/*** 0 1 2 3 4 5 6 7 8 9 A  B  C  D  E  F  16进制元素* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15* 思路:把0到F的元素存到表里,0到15都有对应下标,所以将其建立一一对应关系,&15后得到的结果C直接去表里查找对应元素即可* 建表:可以通过数组形式定赢,下标自动对应A到F* */private static void toHexTable(int num){char[] cha = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};//用数组存放获取到的16进制结果char[] arr = new char[8];int pos = arr.length;while(num!=0) { //右移后,会有很多0, 0000-0000 0000-0000 0000-0000 0000-1100,只取有效位即可,2进制0对应的10进制也是0int temp = num & 15;arr[--pos] = cha[temp];//直接从角标中获取值cha[temp]即为其16进制数,数组倒着放--pos,就不用反转数组cha[temp]num = num >>> 4;}System.out.println("pos:"+pos);//获取到cha[temp]后反转即可打印正确的charfor (int i = pos; i < arr.length; i++) {System.out.print(arr[i]+",");}}//查表法,将16进制转为2进制//首先定义2进制的表,再定义临时存储的容器private static void toBinary(int num){char[] chs = {'0','1'};char[] arr = new char[32];int pos = arr.length;while(num!=0) { int temp = num & 1;arr[--pos] = chs[temp];num = num >>> 1;}for (int i = pos; i < arr.length; i++) {System.out.print(arr[i]+",");}}//优化转化16进制到2进制,和2进制到16进制方法//相同点:都有一个临时表,都有临时容器(大的32可以包含小的8位),都要位移,都有指针//不同点:容器大小,位移数private static void convertNum(int num,int offset,int baseNum){char[] cha = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};char[] arr = new char[32];int pos = arr.length;while(num!=0) { int temp = num & baseNum;arr[--pos] = cha[temp];num = num >>> offset;}for (int i = pos; i < arr.length; i++) {System.out.print(arr[i]);}}public static void main(String[] args) {//toHex(60);//toHexTable(60);//toBinary(-6);convertNum(6,1,1);//2进制 System.out.println("");convertNum(60,4,15);//16进制System.out.println("");convertNum(60,3,7);//8进制}}

结果输出:

110
3C
74

2、二维数组在堆中的存放

java实现2进制转16进制,16进制转2进制(通过查表法和强转实现)相关推荐

  1. java的代码之进制转换(2,8,16与10进制转换)

    文章目录 一.2,8,16进制转换成10进制 二.10进制转换成2,8,16进制返回STRING 三.自己写的十进制转换成十六进制 一.2,8,16进制转换成10进制 使用Integer.parseI ...

  2. java进制转换、字符串与16进制互转/数字进制互转

    目录 十进制转其他进制 其他进制数字转十进制 字符串与16进制相互转换 十进制转其他进制 /*** 十进制转其他进制*/public static String conversion(Integer ...

  3. 16进制转char_常州市赛题解:小X转进制

    小X喜欢研究进制转换.在了解了进制转换的一般流程后,小X突然想起了以前学过的回文数(正着读倒着读都一样的数),于是开始思考一个奇怪的问题:1到N 中有多少个整数的平方在M进制下是回文数呢? 小X随手列 ...

  4. C++ 文件读写实战——2进制文件查看器(16进制显示)

    简单的二进制阅读器(或者说16进制查看器) 在学习BMP位图的构成时,对网上的收费16进制查看器很是烦躁,notepad查看时卡到放弃人生 因为只是为了初步学习图片知识,以及查看2进制文件内部构成的话 ...

  5. 29.【C语言】进制转换:10转16、10转2、2转10、16转10(Demo)

    算法思想: 在对于10转其他进制可以利用短除法的思想,将10进制数转换成其他进制数.,如下图所示,x为进制,num为十进制数. 1.10进制转16进制主体部分 void DecToHex(int nu ...

  6. 用查表法写c语言程序,C语言day07-15进制查表法

    #include void printfBinary(int value); void printfBunary2(int value); void printOct(int value); // 8 ...

  7. 计算机基础进制的换算教案,计算机系统基础(二)数值进制和进制转换

    http://kaito-kidd.com/2018/07/17/computer-system-binary-octal-hexadecimal-decimal/#more # 信息的二进制编码 在 ...

  8. 数组---进制转换(查表法)

    package com.shuzu; public class shuzuJinZhiZhuanHuan { * @param a 所要转换的十进制数,b 不同进制所要与(&)的数不同,wei ...

  9. JAVA-初步认识-第五章-数组-常见操作-进制转换(查表法)

    一. 数组的常见应用 数组在开发中什么时候用? 举例说明: 需求:获取一个整数的十六进制表现形式(要明白十六进制的表现形式是什么样子,有数字有字母) 本来应该返回一个字符串,但是还没有学到返回字符串, ...

最新文章

  1. python从外部传入参数_从另一个Python脚本运行一个Python脚本,并传入参数 - python...
  2. 如何在elasticsearch里面使用深度分页功能
  3. android 把assets 里面的图片文件输出到SD卡
  4. GDCM:DICOM转储到DshibaDTI的测试程序
  5. mysql视图表修复_mysql中含有视图数据库在恢复数据时视图变成数据表的解决方法...
  6. Cloud一分钟 | Gartner发布2018年第二季度全球服务器市场报告;中信银行联合腾讯云推出手机银行智能语音产品...
  7. 读书笔记 - 《我的美国之路》
  8. python在财务中的应用-利用python实现周期财务统计可视化
  9. AD DS 域控与成员计算机的时间一致性
  10. return的用法 java_Java中return用法.
  11. Php程序监控邮件提醒linux,Linux ping命令实现网络监控 并邮件提醒管理员
  12. AD域验证DirectoryEntry用法
  13. 杭电OJ 1720 进制处理
  14. 【132天】尚学堂高淇Java300集视频精华笔记(67-70)
  15. 高峰论坛:专家热议物联网行业如何迎风飞扬
  16. Bootstrap学习
  17. 查看服务器显卡GPU型号
  18. Android系统build.prop文件生成过程
  19. 【分析】CPU hotplug时进程上下文切换流程分析
  20. oracle表连接分析

热门文章

  1. 2023 TIOBE 2月编程语言榜:年度语言是TA!
  2. 2021-7 TIOBE
  3. 21天学通Java学习笔记-Day02
  4. 成都自传-MoccA and 555
  5. mysql 字段 大于0_mysql 字段类型
  6. 整理 | 计算机听觉领域可以考虑发哪些期刊会议
  7. 芯片设计:verilog断言(SVA)语法
  8. vcs 如何 dump sva
  9. JavaScript 开发的45个技巧2
  10. JS实现JSON.stringify