JAVA学习之进制转换练习
public static void main(String[] args)
{
toBin(60); toBa(60); toHex(60);
}
/**
十进制-->二进制
*/
public static int toBin(int num)
{
trans(num,1,1);
}
/**
十进制-->八进制
*/
public static int toBa(int num)
{
trans(num,7,3);
}
/**
十进制-->十六进制
*/
public static int toHex(int num)
{
trans(num,15,4);
}
/**
查表法
思路:
1.通过&方法获取最低进制位。
2.通过存储的数组获取对应的进制字符
3.通过>>>方法获取有效位数 参数:
num:十进制数
base:根据进制保留二进制位数用于计算每个值
offset:右移位数
*/
private static void trans(int num,int base,int offset)
{
if(num==0)
{
System.out.println(num);
return;
}
//表
char[] chs={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
StringBuffer strb=new StringBuffer();
while(num!=0)
{
int temp = num & base;
strb.append(chs[temp]);
num = num >>> offset;
} System.out.println(strb.receive());//strb.receive():反转(如:011=>110)
} /**
num:十进制数
base:根据进制保留二进制位数用于计算每个值
offset:右移位数
*/
private static void trans(int num,int base,int offset)
{
if(num==0)
{
System.out.println(num);
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];//知识点:一、--pos:pos=pos-1;二、从数组后向前存储(arr[length-1]~arr[0])
num = num >>> offset;
}
for(int i=pos;i<arr.length;i++)
{
System.out.print(arr[i]);
}
}
原理:
JAVA学习之进制转换练习的更多相关文章
- java中16进制转换10进制
java中16进制转换10进制 public static void main(String[] args) { String str = "04e1"; String myStr ...
- java中的进制转换
java中的进制转换及转换函数 转自:https://blog.csdn.net/V0218/article/details/74945203 Java的进制转换 进制转换原理 十进制 转 二进制: ...
- Java练习 SDUT-1253_进制转换
进制转换 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 输入一个十进制数N,将它转换成R进制数输出. Input 输入 ...
- Java基础(进制转换-)
进制概述: 进制也就是进位计数制,是人为定义的带进位的计数方法(有不带进位的计数方法,比如原始的结绳计数法,唱票时常用的“正”字计数法,以及类似的tally mark计数). 对于任何一种进制---X ...
- java byte 16进制转换
整型转16进制: int devIdInt = Integer.parseInt(devId);String devIdString = Integer.toHexString(devIdInt); ...
- java中的进制转换以及字符串类和数值类的相互转化
import java.util.*; import java.io.*; import java.math.*; import java.math.*; public class Main { pu ...
- Java 大数任意进制转换
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner cin = ...
- Java基础之进制转换
1.十进制与二进制之间的转换 (1)十进制转二进制的方法:使用十进制的数据不断除以2,直到商为0为止,从下往上取余就是对应的二进制. (2)二进制转十进制:使用二进制的每一位乘以2的n次方,n从0开始 ...
- java基础值进制转换
十进制转换为二进制: 解: 十进制数42连续除以2,当被除数为0时停止除以2,将余数倒加即为结果 :42(10)=101010(2) 注: 计算机内部表示数的字节单位是定长的,且只能是字节(1byte ...
随机推荐
- 77、tensorflow手写识别基础版本
''' Created on 2017年4月20日 @author: weizhen ''' #手写识别 from tensorflow.examples.tutorials.mnist import ...
- Linux中的特殊权限s、t、i、a
文件权限除了r.w.x外还有s.t.i.a权限:s:文件属主和组设置SUID和GUID,文件在被设置了s权限后将以root身份执行.在设置s权限时文件属主.属组必须先设置相应的x权限,否则s权限并不能 ...
- RTTI RAII
RTTI(Run Time Type Identification)即通过运行时类型识别,程序能够使用基类的指针或引用来检查着这些指针或引用所指的对象的实际派生类型. RTTI提供了以下两个非常有用的 ...
- lambda(),map(),filter()
Lambda 函数 Lambda 函数是一种比较小的匿名函数.Python 函数通常使用 def a_function_name() 样式来定义,但对于 lambda 函数,我们根本没为它命名.这是因 ...
- Dubbo 微服务系列(03)服务注册
Dubbo 微服务系列(03)服务注册 [TOC] Spring Cloud Alibaba 系列目录 - Dubbo 篇 1. 背景介绍 图1 Dubbo经典架构图 注:本图来源 Dubbo官方架构 ...
- python base64编码实现
alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" def encode(b ...
- java swing 中JTable实现指定单元格为下拉框
利用自定义的CellEditor实现第四列第二行为下拉框,本列其余行为文本框 利用默认的DefaultCellEditor设置第五列整列为下拉框 package mypackage; import ...
- JSON 和 xml 浅读
1. JSON数据格式 JSON 语法是 JavaScript 对象表示法语法的子集. 数据在名称/值对中:名称是字符串,使用双引号表示.值可以是:数字(整数或浮点数),字符串(在双引号中),数组(在 ...
- 查看linux防火墙的状态
如有需要可以加我Q群[308742428]大家一起讨论技术,有偿服务. 后面会不定时为大家更新文章,敬请期待. 喜欢的朋友可以关注下.iptables防火墙1.基本操作 # 查看防火墙状态 servi ...
- myeclipse中使用maven插件的时候,报错-Dmaven.multiModuleProjectDirectory system propery is not set.
-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable a ...