首页 > 试题广场 >

进制转换

[编程题]进制转换
  • 热度指数:35586 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。

输入描述:
多组数据,每行为一个长度不超过30位的十进制非负整数。
(注意是10进制数字的个数可能有30个,而非30bits的整数)


输出描述:
每行输出对应的二进制数。
示例1

输入

0
1
3
8

输出

0
1
11
1000
头像 philos
发表于 2021-02-01 17:21:02
思路 简单的进制转换,但是因为数字比较大,所以要使用字符串进行存储,所以难点就在于如何对十进制字符串进行转换。 其中字符串除法是模拟竖式除法,从前往后除,我刚开始的时候开别人的题解就这一点没有明白,举个例子,987654 除以 321,计算步骤如下: 取被除数前三位(除数长度) - 987,除以3 展开全文
头像 多多zz
发表于 2020-03-28 11:27:22
题目描述 将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。 解题思路 众所周知,我们在进行进制转换的时候是将某个数与进制做除法,其余数为应该添加到最低位的值。假如十进制数123要转化成二进制: 123/2 我们得到61和余数1  展开全文
头像 aaaawei
发表于 2021-01-17 16:39:23
//第一步就是设计一个对于字符串的除法 这一点比较难 不多说上代码 #include<cstdio> #include<iostream> #include<string> #include<vector> using namespace& 展开全文
头像 易水寒learning
发表于 2022-01-20 16:06:48
#include <iostream> #include <cstdio> #include <vector> #include <string> using namespace std; string Divide(string str,int 展开全文
头像 漫漫云天自翱翔
发表于 2020-08-08 10:47:49
利用短除法,一直除至0,输出的数通过栈反序输出。通过字符数组接受数据,转换成int存入队列q1中,将队列中的数据一次取出对2取余,整除,存入第二个队列q2,直到第一个队列为空,将去q1=q2;循环,直到q1为空 #include<iostream> #include<cstring 展开全文
头像 猫和老鼠之张鱼小丸子
发表于 2024-03-05 21:21:17
基础知识:进制转换 #include <iostream> using namespace std; //string类除以2 void string_chu_2(string& s) { string t; int a = 0; //余后值 for 展开全文
头像 牛客440904392号
发表于 2024-10-05 12:44:30
//Java版代码 import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = 展开全文
头像 yigu2468
发表于 2024-03-14 15:11:43
#include <iostream> #include <string> using namespace std; string bigIntMod(string num,int h){ int x; int n = num.size(); if 展开全文
头像 牛客600247800号
发表于 2022-02-25 18:29:58
关键在于对于字符串模拟的数字,不断的进行对2取模,对2整除的运算,即可求出结果。 对于取模运算,可以转换为对字符串低位进行取模的运算,二者功能上是等价的。 对于整除运算,需要重写一个函数来完成字符串除法的功能。将字符串从高到低逐位除以除数,如果某位不能整除,那么就保留该位数除以除数的余数,余数乘以1 展开全文
头像 勋谦
发表于 2024-06-26 21:22:37
#include <iostream> #include <string.h> #include <algorithm> using namespace std; string s,ans; string convert(){ for(int i = 0 展开全文