3. 从键盘上输入一个八进制数,利用指针将其转换为十进制数并输出 C语言 很急

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3. 从键盘上输入一个八进制数,利用指针将其转换为十进制数并输出 C语言 很急相关的知识,希望对你有一定的参考价值。

参考技术A 你要是实在想自己转换,开一个以为数组,每个8进制数都会转换成3个二进制的数,8转2你可以使用辗转相除得到,不用给你写代码吧,给你举个例子如果输入是7711那么对第一个7辗转,先除2取余数1,把结果3再除二取余数1,结果得到1再除以二取余数1,逆序存放 参考技术B 给你写了个,能正确输出结果
#include "stdio.h"
#include "string.h"
int EtoT(char s[15])

int sum=0;
int x = 1;
for(int i = strlen(s)-1;i>=0;i--)

sum+=(s[i]-48)*x;
x*=8;

return sum;


int main()

char str[15];
int sum;
scanf("%[^\n]",&str);
printf("%d",sum=EtoT(str));
return 0;
追问

不行啊

追答

怎么可能呢?26(八进制)——>22(十进制)
112——>74可以啊

参考技术C #include <stdio.h>
#include <math.h>
void main()

int a;
int p = 0;
int i = 0;
scanf("%d",&a);
while(a)

p += a%10 * pow(8,i);
a /=10;
i++;

int *b = &p;
printf("%d",*b);
参考技术D 不用你自己实现。c有实现的函数。
canf("%o",&a);
printf("%d",a);追问

可以给个完整的代码不啊 下午要交的啊

追答

好吧,
#include
int main()

int a ;
printf("请输入一个十进制数:");
scanf("%d",&a);
printf("\n%d转换为八进制是:%o",a,a);

第5个回答  2011-10-29 #include<stdio.h>
int main(void)

int a;
scanf("%o",&a);
printf("%d",a);
system("pause");
return 0;

利用倒除法将一个十进制数的正整数转换为二进制

#include <iostream>
#include <Windows.h>

using namespace std;

int main(void) 
    int n = 0;
    int ret[32];
    int i = 0;

    cout << "请输入一个正整数:";
    cin >> n;

    while (n != 0)
    
        ret[i] = n % 2;
        n = n / 2;
        i++;
    

    for (i--; i >= 0; i--) 
        cout << ret[i];
    
    cout << endl;

    system("pause");
    return 0;

技术图片

 

以上是关于3. 从键盘上输入一个八进制数,利用指针将其转换为十进制数并输出 C语言 很急的主要内容,如果未能解决你的问题,请参考以下文章

c语言 从键盘上读入一个整型数,将其转化成字符串并输出。例如:输入123,则转换为字符串“123

用Python 3.1.3 写几个进制转换的程序

Python新建文件,从键盘输入一个正整数并将其赋值给a,然后输入将a分别转换为二?

从 void 指针转换为 char 指针时遇到问题

Perl:创建二进制数并将其转换为十六进制

十六进制转换为十进制