二进制转化为十进制
1.从左向右:
#include<iostream>
using namespace std;
#include<string>
int binary_int(string str) {
int sum = 0,t;
for (int i = 0;i < str.size();i++) {
t = str[i] - '0';
sum = 2*sum + t;
}
return sum;
}
int main() {
cout << binary_int("1001");
return 0;
}
2.从右向左:
#include<iostream>
using namespace std;
#include<string>
int binary_int(string str) {
int sum = 0,k = 1,t;
for (int i = str.size() - 1;i >= 0;i--) {
t = str[i] - '0';
sum += k * t;
k *= 2;
}
return sum;
}
int main() {
cout << binary_int("1001");
return 0;
}
Java题解
十进制转换为二进制:
package com.itheima;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数:");
int n = scanner.nextInt();
System.out.println(n + "转换为二进制形式:"+binaryToDecimal(n));
}
public static String binaryToDecimal(int n){
char nums[] = new char[32];
int t = 0;// 记录位数
while(n != 0){
nums[t] = (char)(n % 2 + '0');
t++;
n /= 2;
}
for(int i=0;i<t/2;i++){
char c = nums[i];
nums[i] = nums[t-1-i];
nums[t-1-i] = c;
}
return new String(nums);
}
}
十进制转换D进制:
package com.itheima;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数:");
int n = scanner.nextInt();
System.out.print("请输入要转换为的进制:");
int D = scanner.nextInt();
System.out.println(Integer.toString(n,D));
}
}