大数的十进制转换成二进制

作者: 小太阳花儿 | 来源:发表于2018-03-10 20:51 被阅读15次

要求输出最多有30位的十进制数的二进制表示。
10的30次方大概是2的100次方,最大的long long int最多也只能表示到2的64次方,所以用字符串来存这个数,然后通过遍历字符串的方式来模仿整数除法。

#include <cstdio>
#include <iostream>
#include <string.h>


using namespace std;
char sp[100];
int res[100];
int n,length;

bool isAllZero(char* str)
{
    for(int i=0;i<length;i++)
    {
        if((int)str[i]!=0)
        {
            return false;
        }
    }
    return true;
}

int main()
{
    scanf("%s",sp);
    length = strlen(sp);
   //下面把ascii码值转换成整数值 十进制0对应ascii码的48
    for(int i=0;i<length;i++)
    {
        sp[i] -= 48;
    }
    if(isAllZero(sp)) cout<<"0"<<endl;
    int counter = 0;
  //循环直到数组里所有数都为0
    while(!isAllZero(sp))
    {
        int pre = 0;
        for(int i=0;i<length;i++)
        {
           //除2取余
            int temp = (sp[i]+pre*10)/2;
            pre = (sp[i]+pre*10)%2;
            sp[i] = temp;
        }
        res[counter]=pre;
        counter++;
    }
    cout<<"counter is "<<counter<<endl;
    for(int i=counter-1;i>=0;i--)
    {
        cout<<res[i]<<" ";
    }
    return 0;
}

相关文章

  • 各个进制的转换

    各个进制转换成十进制 十进制转换成二进制 二进制转换成八进制 / 十六进制 常用的一些2的幂的值

  • (十六进制十进制二进制八进制)进制转换计算机基础

    1.十进制转R进制 1.1 十进制转二进制 十进制整数转二进制 十进制整数转换成二进制采用“除2倒取余”,十进制小...

  • python-基础篇练习题

    通过代码实现如下转换:二进制转换成十进制:v = “0b1111011”十进制转换成二进制:v = 18八进制转换...

  • 栈的应用(二进制问题)

    使用栈能解决的问题 将二进制数据转换成十进制数据 1. 将二进制转换成十进制 在计算机内部数据存储都是保存成二进制...

  • 软件测试-1.测试基础

    1.软件测试的简单认识 2.计算机 十进制转换成二进制 二进制转换成十进制 3.编码和计量单位 人和计算之间的翻译...

  • 20160909进制转换

    1.二进制,十进制,十六进制和ASCII码 二进制转十进制(相加法):2+2²+...+2的n次方相加转换成十进制...

  • python面试题

    二进制转换成十进制 print(0b1111) = 15 print(int(number,2)) 十进制装换成二...

  • python 进制转换

    如何表示二进制 任意进制之间的转换 任意进制转换成二进制--bin 任意进制转换成十进制--int 3.任意进制转...

  • 进制介绍

    计算机只认识二进制,会让六进制,八进制,十进制转换成二进制进行计算 二进制 遇到2进一 八进制 遇到8进一 十进制...

  • iOS进制之间转换

    1 进制的转换(一) 1.1 问题 完成以下数字的进制转换: 35转换成二进制; 101101 转换成十进制; 1...

网友评论

    本文标题:大数的十进制转换成二进制

    本文链接:https://www.haomeiwen.com/subject/wdbbfftx.html