Java 控制台做个十进制和二进制互相转换

计算机使用的是二进制,计算机只认识0和1

我们日常使用的是十进制,满十进一

既然计算机只认识0和1,那么我们日常使用的计算机时如何操作呢

这就需要一套二进制和十进制互相转换的公式了

首先说十进制转换二进制,就是不断的用十进制的数字除以2,直到十进制的数字最后为0时,将余数倒序排列就是十进制的二进制表示了

如下,十进制数字12转换为二进制

  • 12 / 2 = 6 余数为 0
  • 6 / 2 = 3   余数为 0
  • 3 / 2 = 1   余数为 1
  • 1 / 2 = 0   余数为 1

然后将余数倒序连起来就是12的二进制表示 12的二进制数为 1100

二进制转换十进制首先将二进制从右到左乘以一串数字,然后再将结果加起来就可以了

这一串数字有个规律,就是开头为1,之后每个数字都是数字本身乘以2

  • 1
  • 1 * 2 = 2
  • 2 * 2 = 4
  • 4 * 2 = 8
  • ...
  • n * 2 = 2n
  • ...

如将1100 转换为十进制时,先将二进制从右到左乘以 根据上面规律得到的一串数字

  • 0 * 1 = 0
  • 0 * 2 = 0
  • 1 * 4 = 4
  • 1 * 8 = 8

然后将结果的全部加起来,就是二进制转换十进制的结果

  • 0 + 0 + 4 + 8 = 12

用程序展示十进制转换二进制就是将十进制的数字循环除以2,知道十进制的数字等于0时候结束循环,在循环中,将除以2的余数用字符串拼接起来,拼接的时候先拼接最新的除以2余数,然后再将之前的结果字符串链接起来,结束循环后,字符串就是十进制转换二进制之后的结果了

System.out.print("请输入十进制数字:");
int shi = in.nextInt();
String str = "";
while (shi != 0){
    str = String.valueOf(shi%2) + str;
    shi = shi / 2;
}
System.out.println("二进制结果为:" + str);

用程序展示二进制转换十进制需要先有一个跟二进制数量相同的一串数字,然后倒序循环二进制,乘以所对应的一串数字中的某个数字,然后将结果加起来,乘积结果的和就是二进制转十进制的结果

System.out.print("请输入二进制数字:");
str = in.next();
int bei = 1;
shi = 0;
for (int i = str.length()-1; i >= 0; i--){
    shi += Integer.parseInt(String.valueOf(str.charAt(i))) * bei;
    bei *= 2;
}
System.out.println("十进制数字为:" + shi);

源码地址:https://github.com/sunhouzi2018/Java-Binary

原文地址:https://www.cnblogs.com/sunhouzi/p/12303106.html

时间: 2024-08-10 02:24:07

Java 控制台做个十进制和二进制互相转换的相关文章

二进制运算-十进制与二进制的转换

在学习JDK源码和JAVA一些开源框架源码的时候经常会碰到位运算,要搞懂位运算就得弄明白二进制和十进制之间的转换 一.十进制转换成二进制 1.正整数转换成二进制 十进制整数转换成二进制就是不停的除以二,直到不足二为止(0或者1),然后记录余数,从下往上排列出来就是二进制的值 举个例子:5和8转换成二进制 5的二进制为101,8的二进制为1000 2.负整数转换成二进制 负整数转换成二进制,首先取得它绝对值的正数的二进制,然后取反(0变1,1变0),然后加1 举个例子:-5的二进制(32位计算机中

20180417_十进制与二进制的转换

一.十进制转二进制 1.正数 十进制转二进制的方法是递归除2,直到商等于0停止,倒序取余数:二进制通常呈4位.8位.16位.32位出现,高位不足补0: 以十进制55为例: 最终得到的二进制数值为  11 0111 ,高位补0最终得到  0011 0111: 2.负数 负数转二进制需要先将负数取反得到正的十进制数值,之后根据正数的规则转换成二进制,再将二进制取反后加1: 以十进制-55为例: ① 取反得到数值55 ② 55转换二进制为 0011 0111 ③ 将 0011 0111 取反得到 11

用python写十进制与二进制之间转换

很简单的一段,当练手 def s2e(): e = [0,0,0,0,0,0,0,0] s = int(input("请输入一个十位数:")) for i in range(0,8,1): e[i] = int(s%2) s=s//2 e.reverse() print("二进制数为:",e) def e2s(): s=[0,0,0,0,0,0,0,0] a=0 s=list(input("请输入一个二进制数:")) s.reverse() fo

[Introduction to programming in Java 笔记] 1.3.7 Converting to binary 十进制到二进制的转换

public class Binary { public static void main(String[] args) { // Print binary representation of N. int N = Integer.parseInt(args[0]); int v = 1; while(v <= N/2) v = 2*v; // Now v is the largest power of 2 <= N. int n = N; // current excess while (v

十进制与二进制,八进制,十六进制的转换

(一)数制       计算机采用的是二进制,因为二进制具有运算简单,易实现且可靠,为逻辑设计提供了有利的途径,节省设备等优点,为了便于描述,又常用八.十六进制作为二进制的缩写.特点: (1)逢n进一,n是每种进位进数制表示一位数所需要的符号数目为基数. 二进制:逢二进一,借一当二 八进制:逢八进一,借一当八 十六进制:逢十六进一,借一当十六 (二)数制转换       不同进位计数制之间的转换原则:不同进位计数制之间的转换是根据两个有理数如相等,则两数的整数和分数部分一定分别一定相等的原则进行

java中将十进制转换为二进制

public static void main(String[] args) { toBin(6); } /* 十进制转换为二进制 */ public static void toBin(int num) { while(num>0) { System.out.println(num%2); num=num/2; } } java中将十进制转换为二进制

二进制、八进制、十进制、十六进制之间转换

一. 十进制与二进制之间的转换 (1) 十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数.下面举例: 例:将十进制的168转换为二进制 得出结果 将十进制的168转换为二进制,(10101000)2 分析:第一步,将168除以2,商84,余数为0. 第二步,将商84除以2,商42余数为0.

二进制 八进制 十进制 十六进制之间的转换

一. 十进制与二进制之间的转换 (1)十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数.下面举例: 例:将十进制的168转换为二进制 得出结果 将十进制的168转换为二进制,(10101000)2 分析:第一步:将168除以2,商84,余数为0.  第二步:将商84除以2,商42余数为0. 

《转载》二进制、八进制、十进制、十六进制之间转换

一. 十进制与二进制之间的转换 (1) 十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数.下面举例: 例:将十进制的168转换为二进制 得出结果 将十进制的168转换为二进制,(10101000)2 分析:第一步,将168除以2,商84,余数为0. 第二步,将商84除以2,商42余数为0.