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]);
}
}

原理:

最新文章

  1. ThinkPhp 3.2 ajax无刷新分页(未完全改完,临时凑合着用)
  2. 项目开发之UML之初识
  3. IPv6测试环境
  4. Pydev Debugger not working with breakpoints
  5. SAP资产明细报表
  6. WPF RichTextBox读取存储文本的方法和常用属性
  7. 怎样对CODESOFT中的条形码进行黑白转换
  8. LayoutInflater
  9. js高手
  10. python filter内建函数
  11. 4.锁--无锁编程以及CAS
  12. $translate 的用法
  13. rocketmq 启动和停止命令
  14. PHP7.X连接SQLSERVER数据库(CENTOS7)
  15. python常量 变量 数据类型 注释 交互 if语句
  16. angular 遍历foreach
  17. VirtualBox 桥接模式,虚拟机ping不通宿主机
  18. 初见SDN
  19. MySQL5.5 安装配置方法教程
  20. TensorFlow学习笔记:保存和读取模型

热门文章

  1. IDEA的骚操作
  2. linux中软连接和硬链接的区别
  3. 个人笔记 - C++相关收藏
  4. 7-4 IP思考
  5. js实现复选框全选/全不选/反选
  6. 5. 使用grafana模板
  7. activiti7查询历史数据
  8. 常用命令--mount
  9. python_模块 collections,random
  10. python 根据余弦定理计算两边的夹角