二进制的大整数转化为十进制,求助大佬
输入为一个二进制大整数(大整数大于0,不带符号,无前导0,至少1位数字,且不超过100位数字)。要求将该整数转换成十进制数,并输出。建议:用字符数组存储大整数。
#include <stdio.h> int main( void ) { char bin[101]; scanf( "%s", bin ); unsigned long long dec[2] = { 0, 0 }; // base 10^18 for( const char* p=bin; *p; ++p ) { dec[1] = dec[0]*2/1000000000000000000 + dec[1]*2; dec[0] = dec[0]*2%1000000000000000000 + (*p-'0'); } if( dec[1] != 0 ) printf( "%llu%018llu\n", dec[1], dec[0] ); else printf( "%llu\n", dec[0] ); }