C++中怎样完成将一个十进制转换成八进制、十六进制数的功能

 我来答
yesyes科
2020-02-25 · TA获得超过2.6万个赞
知道答主
回答量:608
采纳率:0%
帮助的人:9万
展开全部

1、C语言打印八进制是通过%o,(百分号和小写字母o组成)打印输出的,首先八进制017的打印输出,实现以下代码段,代码段是先保存一个8进制的数字,然后通过%o的方式输出八进制。

2、代码段编译通过后运行查看结果,可以看到结果就是17,八进制打印出八进制,不会有什么变化。

3、十进制表示的数字以八进制的格式打印出来看看结果,首先通过计算机得到十进制的数字20等于八进制的24,具体如下图所示,左边八进制,右边十进制。

4、然后实现以下代码段,十进制的数字20以八进制的格式进行打印输出,代码段是先保存一个十进制的数字20,然后通过%o的方式输出八进制。

5、代码段编译通过后运行查看结果,可以看到十进制数字20以八进制的格式输出的结果是24,和通过计算机得出的结果是一致的。

6、十六进制表示的数字以八进制的格式打印出来的结果,首先通过计算机得到十六进制的数字0xAF等于八进制的257。

7、然后实现以下代码段,十六进制的数字0xAF,以八进制的格式进行打印输出。代码段是先保存一个十六进制的数字0xAF,然后通过%o的方式输出八进制。

kaixingui2012
推荐于2017-10-08 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6210万
展开全部

C++中,可通过itoa()函数,方便的将10进制数转换成2 8 16等进制数,并转存到字符串中。

如果仅是想以8或16进制格式输出10进制数,则可以使用cout的格式化输出参数oct和hex完成数据输出。(缺陷:不支持二进制格式输出)

参考代码:

相关函数说明:

char *itoa( int value, char *string,int radix);

说明:

value:欲转换的数据。

string:目标字符串的地址。

radix:转换后的进制数,可以是2 8 10 16进制等。

特别说明:itoa 并不是一个标准的C函数,它是Windows特有的,如果要写跨平台的程序,可以用sprintf(),用法与printf()相同。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b2de0cb
2015-09-12 · TA获得超过453个赞
知道小有建树答主
回答量:369
采纳率:0%
帮助的人:148万
展开全部
//十进制转换为任意进制
#include <iostream>  
using namespace std;  
  
int main()  
{  
    long n;  
    int p,c,m=0,s[100];  
    cout<<"输入要转换的数字:"<<endl;  
    cin>>n;  
    cout<<"输入要转换的进制:"<<endl;  
    cin>>p;  
  
    cout<<"("<<n<<")10="<<"(";  
  
    while (n!=0)//数制转换,结果存入数组s[m]  
    {  
        c=n%p;  
        n=n/p;  
        m++;s[m]=c;   //将余数按顺序存入数组s[m]中  
    }  
  
    for(int k=m;k>=1;k--)//输出转换后的序列  
    {  
        if(s[k]>=10) //若为十六进制等则输出相对应的字母  
            cout<<(char)(s[k]+55);  
        else         //否则直接输出数字  
            cout<<s[k];  
    }  
  
    cout<<")"<<p<<endl;  
  
    return 0;  
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
roaming_sheep
推荐于2017-10-13 · TA获得超过699个赞
知道小有建树答主
回答量:589
采纳率:0%
帮助的人:696万
展开全部
int i=1000;
cout<<hex<<i<<endl; //输出十六进制数
cout<<oct<<i<<endl; //输出八进制数

hex和oct定义在<iomanip>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lgz00gi
2012-03-18
知道答主
回答量:24
采纳率:0%
帮助的人:13万
展开全部
除以基数取余
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式