我是靠谱客的博主 慈祥篮球,最近开发中收集的这篇文章主要介绍二进制转为十进制,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1. 问题描述:

input:从控制台输入二进制串

output:输出二进制串对应的十进制数字

2. 思路分析:

① 方法一:可以使用Java中提供的API进行转换,Long.parseLong(s, 2)或者Integer.parseInt(s, 2)进行转换

② 方法二:我们可以遍历输入的字符串当字符串的位上为1的时候那么我们将1左移对应的位数,移动的位数可以根据循环变量来进行确定

③ 方法三:循环遍历字符串判断当前位是否是1假如是1那么将1乘以该位上对应的权重,所以不管当前位是否为1每一次我们都要将上一位的权重再乘以2

3. 具体的代码如下:

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//使用Integer.parseInt(s, 2)
String s
=sc.next();
System.out.println("第一种方法: ");
//第一种方法在输入的二进制数字比较长的时候会造成溢出的情况
System.out.println(Long.parseLong(s, 2));
System.out.println("第二种方法: ");
solve(s);
sc.close();
}
private static void solve(String s) {
long res = 0;
int len
= s.length();
for(int i = len - 1; i >= 0; i--){
if(s.charAt(i) == '1'){
res = res + (1 << (len - i - 1));
}
}
System.out.println(res);
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//使用Integer.parseInt(s, 2)
String s
=sc.next();
solve(s);
sc.close();
}
private static void solve(String s) {
int t = 1;
long res = 0;
int len = s.length();
for(int i = len - 1; i >= 0; i--){
if(s.charAt(i) == '1'){
res += t;
}
t *= 2;
}
System.out.println(res);
}
}

 

最后

以上就是慈祥篮球为你收集整理的二进制转为十进制的全部内容,希望文章能够帮你解决二进制转为十进制所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部