Java十进制转化成二进制方法
来源:互联网 发布:淘宝上买车保险便宜吗 编辑:程序博客网 时间:2024/06/08 00:31
十进制转二进制的除二取余倒序法的逻辑依据是什么?
可以用十进制来类比:
一个数123456789用除十取余求它的十进制表达式
第一次除以10,商12345678 余9,
第二次除以10,商1234567 余8,
第三次除以10,商123456 余7,
…
一直到商比10小为止(n进制为商比n小为止)
咋取,是顺是倒,一目了然吧
下面具体说明
假设一个十进制数k要转换为n进制(设i位上的数字为m[i])
那么
k=m[i]*n^(i-1)+m[i-1]*n^(i-2)+m[i-2]*n^(i-3)+…+m[1]
当k第一次除以n的时候
商是m[i]*n^(i-2)+m[i-1]*n^(i-3)+m[i-2]*n^(i-4)+…+m[2] 余数是m[1]
同理 再次除以n的时候 余数是m[2]
…………………….
当最后,第i次除以n时 余数就是m[i]
倒序时候就是 m[i] m[i-1] 。。。m[2] m[1]
也就是转换出来的n进制数
事实上十进制数转换为任何n进制数的整数部分都能用除以n倒序取余
十进制转化成二进制代码如下:
//算法:除二倒序取余法import java.util.LinkedList;import java.util.Scanner;public class shijinzhiToerjinzhi { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入一个整数:"); int n=scanner.nextInt(); scanner.close(); System.out.print(getBinary(n)); } public static String getBinary(int num) { int currentNum = num;//存放当前的被除数 LinkedList<String> list = new LinkedList<String>();//存放余数,也是就二进制数 while (currentNum != 0) { if (currentNum % 2 == 0) { list.addFirst("0"); //此处用 addFirst()可实现倒序取余 } else { list.addFirst("1"); } currentNum /= 2; } StringBuilder sb = new StringBuilder();//当然你可以使用其他形式作为方法的返回 for (int i = 0; i < list.size(); i++) { sb.append(list.get(i)); } return sb.toString(); } }
0 0
- Java十进制转化成二进制方法
- Java Stack实现十进制转化成二进制
- 十进制转化成二进制
- 二进制转化成十进制
- 二进制转化成十进制
- java--十进制转化为二进制
- java实现十进制转化二进制
- (Java)十进制转化为二进制
- 关于十进制转化成二进制
- 十进制负数转化成二进制
- java--十进制转化为二进制、十进制转化为十六进制、查表法十进制--十六进制、查表法十进制二进制、
- java十进制到二进制,十六进制的转化
- Java 十进制 向二进制 十六进制 转化
- 十进制转化为二进制(java)
- Java中如何得到一个整型数的二进制形式(十进制转化成二进制)
- 十进制转化成二进制八进制十六进制
- 十进制转化为二进制
- 十进制转化为二进制
- android 隐藏虚拟按键
- 强哥收藏的Android开源库集合【UI效果篇】
- 数据结构——后缀树
- ES 5.3 集群安装
- Spring Boot 热部署之spring-boot-devtools
- Java十进制转化成二进制方法
- Android Gradle学习1--android studio中的相关配置
- 动画函数测试封装
- UNIX环境高级编程fcntl和dup
- JDK1.5~JDK1.7新特性
- C++N4 作业(项目二、三、四)
- 原生JS forEach()和map()遍历,jQuery$.each()和$.map()遍历
- IO
- 清除浮动