任意进制转换 (类)

#include <bits/stdc++.h>
#include <iostream>


using namespace std;




class JZZH
{
    public:
    void  getss( )
    {
       cin >>st1>>c>>d;
       /*
       strcpy(st1,str1);
       strcpy(st2,str2);
       c=a;
       d=b;
       */
    }
    int   panduan()
{
      q=strlen(st1);
      int k=1;
    for(int i=0;i<q;i++)
    {


        if(st1[i]<='9')
        {
             if((st1[i]-'0')>c-1)
            {
                cout<<"小笨蛋,你的"<<c<<"进制数输入格式不正确"<<endl;
                k=0;
             break;
            }
        }


        else
            if((st1[i]-55)>c-1)
            {cout<<"小笨蛋,你的"<<c<<"进制数输入格式不正确" ;
            k=0;
             break;
            }


    }
    return k;
}


void SJZ()
{
    int r=0;
    n=0;
    for(int i=q-1;i>=0;i--)
    {
       {if(st1[i]<='9')
        n=n+(st1[i]-48)*pow(c,r++);
       else
        n=n+(st1[i]-55)*pow(c,r++);
       }
    }
    cout <<n<<endl;


}


void RYJZ()
{
  char arr[37]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','I','S','T','U','V','W','X','Y','Z'};
  int brr[100]={0};
  int m=0;
  int h;
    while(n!=0)
 {
   h=n%d;
   n=n/d;
   brr[m++]=h;
 }
 int k=m;


 for(int i=m-1;i>=0;i--)
 {
     st2[i]=arr[brr[i]];
 }
for(int i=k-1;i>=0;i--)
cout <<st2[i];








}




    private:
     char st1[20];
     char st2[20];
     int  c;
     int  d;
     int  q;
     int  n;








};








int main()
{
    JZZH s;


    s.getss();
    if(s.panduan())
   {
       s.SJZ();
       s.RYJZ();
   }


    //cout << "Hello world!" << endl;
    return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在MFC中进行十进制十六进制的操作,可以使用CString和相关的函数进行实现。在引用中给出了一个示例代码,具体步骤如下: 1. 首先,定义一个CString对象并将需要换的十进制数赋值给它,比如CString str = "255"。 2. 使用strtol函数将CString对象中的十进制数换为十进制整数。具体代码如下:int n = strtol(str, NULL, 10)。其中,第一个参数是需要换的字符串,第二个参数为NULL表示忽略字符串中的非数字字符,第三个参数指定要换的数字基数为10,表示换为十进制。 3. 对换后的十进制数进行相应的操作,比如加减乘除等。根据需要进行具体操作,这一步是可选的。 4. 使用CString的Format函数将十进制整数换为十六进制字符串。具体代码如下:str.Format("%X", n)。其中,"%X"是格式化字符串,表示换为大写的十六进制数。 通过以上步骤,就可以在MFC中实现十进制十六进制的操作。希望对你有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [MFC十进制十六进制计算器](https://download.csdn.net/download/zyc0311/9139183)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [MFC--十进制与十六进制之间的换](https://blog.csdn.net/u011642774/article/details/78016937)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [二进制,十进制,十六进制,bit换工具【Ucode++ v1.8.2】](https://download.csdn.net/download/feixiang3839/11017647)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值