热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CodeUp中的大数进制转换技术详解

本文详细介绍了在CodeUp平台中实现大数进制转换的技术方法。具体而言,该问题要求将一个最多包含30位数字的十进制非负整数转换为二进制表示。输入数据包含多行,每行包含一个不超过30位的十进制非负整数。通过高效的算法设计,确保了大数转换的准确性和性能。

题目描述

将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。


输入

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


输出

每行输出对应的二进制数。


样例输入 Copy

985
211
1126


样例输出 Copy

1111011001
11010011
10001100110


idea

long long型表示范围为10^ 18,本题的10^ 30显然远超,属于
把输入的大数视为一个字符串,逐位来做除法
在这里插入图片描述


solution

#include
#include
int main(){char m[100];int n[100];while(scanf("%s", m) !&#61; EOF){int k &#61; strlen(m), l &#61; k, num &#61; 0;while(l > 0){n[num &#43;&#43;] &#61; (m[k - 1] - &#39;0&#39;) % 2;int c &#61; 0;for(int i &#61; 0; i < k; i &#43;&#43;){int s &#61; ((m[i] - &#39;0&#39;) &#43; c * 10) / 2;c &#61; (m[i] - &#39;0&#39;) % 2;m[i] &#61; s &#43; &#39;0&#39;;}while(m[k - l] &#61;&#61; &#39;0&#39;)l --;}for(int i &#61; num - 1; i >&#61; 0; i --)printf("%d", n[i]);printf("\n");}return 0;
}

推荐阅读
author-avatar
奋斗的小鸟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有