zoukankan      html  css  js  c++  java
  • C++进制转换问题

    写一个把10进制整数转化为16进制,10进制,8进制字符串的函数函数原形如下: void int_to_str(intvalue,char *buff,int flag);value 为整数变量,buff 为字符串指针,flag 用来表

    示8,10,16进制。

    具体实现代码如下:

    /*************************************************************
    写一个把10进制整数转化为16进制,10进制,8进制字符串的函数。
    函数原形如下:void int_to_str(int value,char *buff,int flag);
    value为整数变量,buff为字符串指针,flag用来表示8,10,16进制
    **************************************************************/
    #include<stdio.h>
    #include<string.h>
    #include<iostream>
    using namespace std;
    #define size 100
    void int_to_str(int value,char *buff,int flag);
    int main()
    {
        int num,c;
        char s[size]={0};
        cout<<"输入一个整数:";
        while(cin>>num)
        {
            cout<<"输入转换的进制:";
            cin>>c;
            while(c==8||c==10||c==16)
            {
                strcpy(s,"0");
                int_to_str(num,s,c);
                return 0;
            }
            cout<<"进制无效!"<<endl;
            return 0;
        }
        cout<<"输入值非法!"<<endl;
        return 0;
    }
    
    void int_to_str(int value,char *buff,int flag)    
    {
        int r,i,j;
        char ch;
        char *p=buff;
        int temp = value;
        while(value)
        {
            r = value % flag;
            value=value/flag;
            if(r<10)
            {
                *(p++)=('0' + r);
            }
            else
            {
                *(p++)=('A'+ r -10);
            }
        }
        //两个指针相减得到字符串的长度,包括
        i=p-buff;
        //交换字符串里的头尾每一个数值的顺序,得到正确结果
        for(j=0;j<(i+1)/2;j++)
        {
            ch=*(buff+j);
            *(buff+j)=*(p-1-j);
            *(p-1-j)=ch;
        }
        cout<<temp<<"转换为"<<flag<<"进制的结果是:"<<buff<<endl;
        return;
    }


  • 相关阅读:
    《软件需求模式》阅读笔记二
    《软件需求模式》阅读笔记一
    《编写有效用例》阅读笔记三
    《编写有效用例》阅读笔记二
    《编写有效用例》阅读笔记一
    《软件需求十步走》阅读笔记三
    英文一分钟自我介绍
    c语言面试常见题
    docker
    LLDP
  • 原文地址:https://www.cnblogs.com/raiven2008/p/4260877.html
Copyright © 2011-2022 走看看