//十进制转十六进制,十进制转二进制,在整个全的,二八十六进制的万能查表
package test;
//获取一个整数的16进制表现形式
/*
* 分析:
* 二进制转成十六进制,其实就是四个二进制位对应一个十六进制位,思想就是
* 把四个二进制位转换成十六进制位,这样四个四个的转
* 举例子
0000 0000 0000 0000 0000 0000 0011 1100 --->60 num变量
& 1111 --->15
------------------------------------------------
1100 ---->12=C
0000 0000 0000 0000 0000 0000 0011
& 1111
---------------------------------------------------
0011 -->3
所以结果就是转成十六进制就是3c
因为我们要每次都要取低四位,所以我们与上15,这样就可以原模原样的得到低四位
人后用temp记录一下, num右移4位,在这样与15,再用temp记录一下,所以这是个
循环的过程,最多有8个组,所以我们让for循环的次数为8次。
*
* 明确1有没有返回值?没有
* 明确2有没有未知内容参与?有,一个整数二进制数,int
*
* 什么时候用数组呢?
如果数据出现了对应关系,而且对应关系的一方是有序的数字编号并可以作为角标使用的情况下
这时候就必须要想到数组的使用了。就可以将这些数据存储到数组中,
根据运算的结果作为角标直接去查数组中对应的元素即可
这种方式:称为查表法
'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ,11, 12, 13, 14,15 这么明显的对应关系,可以通过角标控制
* */
public class test31 {
public static void main(String args[]){
toHex(60);
toBinary(60);
toOctal(60);
}
public static void trans(int num,int base,int offset){
if(num==0){
System.out.println("0");
return ;//一定要加上return,否则即使是满足了0这个条件还是会往下执行往下开辟空间,但是没有意义
}
char chs [] = {'0','1','2','3','4','5',//定义一个对应关系表
'6','7','8','9','A',
'B','C','D','E','F'};//对应表是你自己在用,你放人家主函数里干嘛
char []arr = new char [8];//定义临时容器,查表查到值时就存起来,不再打印
int pos = arr.length-1;//指针,用来往数组里放数据
while(num!=0){//用for循环得转8圈,转到num为0就行,不用转8次
//for(int x=0;x<8;x++){//num 越来越右移,越有可能成为0,当还有有效位的时候才会执行里面的代码,去掉多余的0
int temp = num & base;
arr[pos--]=chs[temp];
num = num>>>offset;
//}
}
System.out.println("pos="+pos);//pos值为5,也就是角标为5
for(int x=pos+1;x<arr.length;x++){//因为是只存了2个值,只有角标6,7有数值,所以x=pos+1
System.out.print(arr[x]+"");
}
}
public static void toBinary(int num){
trans(num,1,1);
}
public static void toOctal(int num){
trans(num,7,3);
}
public static void toHex(int num){
trans(num,15,4);
}
}
分享到:
相关推荐
Java基础教学 - 数组、进制转换、二维数组 在Java基础教学中,数组是一个非常重要的概念。数组是多个相同类型的变量组成的集合,每个变量被称为一个元素,数组中的每个元素都有自己的下标或索引。下面将详细讲解...
### 黑马程序员Java基础视频辅导班Day01知识点总结 #### Java的跨平台特性与JVM 1. **Java的跨平台性**:Java语言能够实现跨平台运行的关键在于Java虚拟机(JVM),即Java代码可以在任何安装了对应JVM的操作系统上...
### 黑马程序员基础班精华笔记总汇 #### 计算机基础知识 - **计算机定义**:计算机是一种能够根据程序指令处理数据的电子设备。它由硬件和软件两大部分构成。 - **硬件**:包括中央处理器(CPU)、内存、硬盘、...
此外,还涉及了不同进制之间的转换方法,例如将其他进制转换为十进制,以及将十进制转换为其他进制的算法。 接着,我们转向变量。变量是存储数据的容器,它的值可以在程序运行过程中改变。声明变量时,需要指定数据...
- **八进制表示**:Python 3中八进制数的前缀变为`0o`。 - **不等号操作符**:Python 2支持`!=`和`<>`表示不等,Python 3仅支持`!=`。 - **整数类型**:Python 3中整数类型统一为`int`,不再区分`int`和`long`。 ...
在“【黑马程序员就业班】02.C高级编程”这个课程中,我们将深入探讨C语言的高级特性,这些知识对于成为一名熟练的IT专业人员至关重要。C语言作为基础性且广泛应用的编程语言,其高级编程技巧是提升编程能力的关键。...
- Base64是一种常用的编码方法,用于将二进制数据转换为ASCII字符串形式。通常用于电子邮件和Web页面中传输二进制数据。 5. **Avro**: - Avro是一个数据序列化系统,它不仅提供了紧凑、快速的数据序列化方式,还...
综上所述,毕向东的JAVA基础班教学大纲覆盖了Java编程的基础知识,从计算机语言的原理到实际开发环境的配置,再到编写和运行第一个Java程序,以及进制转换的概念。这些知识是初学者掌握Java编程所必须掌握的核心内容...
理解并熟练运用这些运算符是成为优秀C#程序员的基础,它们在编写算法、控制程序流程和处理数据时起着至关重要的作用。在编写代码时,合理选择和组合运算符能提高代码的效率和可读性,同时避免可能的错误和异常。
黑马程序员训练营入学考试题 1、方法中的内部类能不能访问方法中的局部变量,为什么? 2、编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value。 ...
"黑马"通常指的是黑马程序员,这是一个知名的在线教育平台,专注于IT技术培训,包括但不限于编程语言、数据结构、算法、前端开发、后端开发等。 测试题的内容可能涵盖以下几个方面: 1. **基础编程语言**:如Java...
同时,“黑马c++项目”可能指的是该项目是黑马程序员培训机构的一个学习实践项目,旨在通过实际操作来提升学员的C++编程技能。 【描述】提到的“借用来熟悉git和github管理项目的流程”意味着这个项目不仅关注代码...
【color.exe取色器】是一款简单实用的颜色选取工具,它主要被黑马程序员(可能是某编程教育机构或个人)推荐使用。这款工具的核心功能是帮助用户从屏幕上任意位置获取颜色值,便于在设计、编程或者日常工作中精准...
例如,Windows用户群体广泛,macOS适合程序员使用,而Linux则多用于服务器和嵌入式系统。服务器操作系统如Linux,以其安全稳定和免费特性深受IT专业人员青睐;而Windows Server则是付费产品,市场占有率相对较低。...