تبئیل مبنای 32 به 2 در c++ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

تبئیل مبنای 32 به 2 در c++ [بسته شد]

0 امتیاز
برنامه ای بنویسید که مبنای 32 را به 2 تبدیل کند
بسته شد با پیغام: سوال دانش آموزی
سوال شده اردیبهشت 23, 1399  بوسیله ی َAliAkbar._.Sh (امتیاز 9)   1 1
بسته شد اردیبهشت 23, 1399 بوسیله ی مصطفی ساتکی

1 پاسخ

0 امتیاز

هر رقم از کم ارزش ترین برو به سمت با ارزش ترین رقم .کم ارزش ترین رقم 32 به توان  صفر و بعدی یک الی آخر. هر رقم را در این اعداد ضرب کن و با هم جمع کن میشه مبنای 10 عدد.

#include <cstring>
#include <string>

long b32tol( std::string b32 )
{
    return strtol( b32.c_str(), 0, 32 ) ;
}

std::string itob32( long i )
{
    unsigned long u = *(reinterpret_cast<unsigned long*>)( &i ) ;
    std::string b32 ;

    do
    {
        int d = u % 32 ;
        if( d < 10 )
        {
            b32.insert( 0, 1, '0' + d ) ;
        }
        else
        {
            b32.insert( 0, 1, 'a' + d - 10 ) ;
        }

        u /= 32 ;

    } while( u > 0 );

    return b32 ;
}


#include <iostream>

int main() 
{ 
    long i = 32*32*11 + 32*20 + 5 ; // BK5 in base 32
    std::string b32 = itob32( i ) ;
    long ii = b32tol( b32 ) ;

    std::cout << i << std::endl ;    // Original
    std::cout << b32 << std::endl ;  // Converted to b32
    std::cout << ii << std::endl ;   // Converted back

    return 0 ;
}

بعد عدد مبنا 10 را به 2 تبدیل کن اینجا توضیح دادن.

پاسخ داده شده اردیبهشت 23, 1399 بوسیله ی frei (امتیاز 23)  
...