黑马程序员_毕向东_Java基础****学习笔记(十一)
程序员文章站
2022-07-07 23:19:02
...
public class ArrayTest5 {
public static void main(String[] args) {
toBin(6);
toHex(60);
}
/*
* 十进制----->十六进制
*/
public static void toHex(int num) {
StringBuffer sb = new StringBuffer();
for(int x=0;x<8;x++){
int temp=num&15;
if(temp>9)
//System.out.println((char)(temp-10+'A'));
sb.append((char)(temp-10+'A'));
else
//System.out.println(temp);
sb.append(temp);
num=num>>>4;
}
System.out.println(sb.reverse());
}
/*
* 十进制----->二进制
*/
public static void toBin(int num) {
StringBuffer sb = new StringBuffer();
while (num > 0) {
// System.out.println(num%2);
sb.append(num % 2);
num = num / 2;
}
System.out.println(sb.reverse());
}
}
public class ArrayTest6 {
// public static void main(String[] args) {
// toHex(60);
// toHex(-60);
// toBin(20);
// toBin(-20);
// }
public static void toBin(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 x=pos;x<arr.length;x++){
System.out.print(arr[x]);
}
}
/*
* 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 查表法:将所有的元素临时存储起来。建立对应关系。 每一次&15之后的值作为索引去查建立好的表。就可以找对应的元素
*
* 这个表怎么建立呢? 可以通过数组的形式来定义 发现终于出结果了。但是是反着的。想要证过来呢,可以通过StringBuffer
* reverse功能来实现 所以可以使用已经学习过的容器:数组来完成存储
*/
public static void toHex(int num) {
char[] chs = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A',
'B', 'C', 'D', 'E', 'F' };
// 定义一个临时容器
char[] arr = new char[8];
// for (int x = 0; x < 8; x++)
// int pos = 0; // 定义一个指针
int pos = arr.length;
while (num != 0) {
int temp = num & 15;
// System.out.println(chs[temp]);
// arr[pos++] = chs[temp];
arr[--pos] = chs[temp];
num = num >>> 4;
}
System.out.println("pos="+pos);
// 存储数据的arr数组遍历
// for (int x = pos - 1; x >= 0; x--) {
// System.out.print(arr[x] + ",");
// }
for (int x = pos; x < arr.length; x++) {
System.out.print(arr[x] + ",");
}
}
}
public class ArrayTest7 {
public static void main(String[] args) {
toBin(6);
toBin(-6);
toHex(60);
toHex(-60);
toBa(15);
toBa(-15);
}
/*
* 十进制-------->二进制
*/
public static void toBin(int num){
trans(num,1,1);
}
/*
* 十进制-------->八进制
*/
public static void toBa(int num){
trans(num,7,3);
}
/*
* 十进制-------->十六进制
*/
public static void toHex(int num){
trans(num,15,4);
}
public static void trans(int num, int base, int offset) {
if(num==0){
System.out.println(0);
return;
}
char[] chs = { '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&base;
arr[--pos]=chs[temp];
num=num>>>offset;
}
for(int x=pos;x<arr.length;x++){
System.out.print(arr[x]);
}
System.out.print("***");
}
}
上一篇: Nginx 防盗链配置