精华内容
下载资源
问答
  • //题目:八进制转换为十进制 #include<stdio.h> #include<math.h> int main() { int i=0,n,tmp,sum=0; scanf("%d",&n); while(n) { tmp=n%10; n=n/10; sum+=tmp*pow(8,i); i++;...

    基本思想: 八进制转十进制,二进制转十进制都一样的道理

    在这里插入图片描述

    八进制 --> 十进制

    //【程序48】
    //题目:八进制-->十进制
    #include<stdio.h>
    #include<math.h>
    int main()
    {
    	int i=0,n,tmp,sum=0;
    	scanf("%d",&n);
    	while(n)
    	{
    		tmp=n%10;
    		n=n/10;
    		sum+=tmp*pow(8,i);
    		i++;
    	}
    	printf("%d",sum);
    	return 0;
    }
    

    二进制 --> 十进制

    #include<stdio.h> //二进制-->十进制
    #include<math.h>
    int main()
    {
    	int i=0,n,tmp,sum=0;
    	scanf("%d",&n);
    	while(n)
    	{
    		tmp=n%10;
    		n=n/10;
    		sum+=tmp*pow(2,i);
    		i++;
    	}
    	printf("%d",sum);
    	return 0;
    }
    

    十进制 --> 二进制

    #include<stdio.h>  //十进制-->二进制 
    int main()
    {
    	int i=0,n,str[15];
    	scanf("%d",&n);
    	while(n)
    	{
    		str[i]=n%2;
    		n=n/2;
    		i++;
    	} 
    	for(int j=i-1;j>=0;j--)
    		printf("%d",str[j]);
    	return 0;
    }
    

    十进制 --> 八进制

    #include<stdio.h>  //十进制-->八进制 
    int main()
    {
    	int i=0,n,str[15];
    	scanf("%d",&n);
    	while(n)
    	{
    		str[i]=n%8;
    		n=n/8;
    		i++;
    	} 
    	for(int j=i-1;j>=0;j--)
    		printf("%d",str[j]);
    	return 0;
    }
    

    十六进制 --> 十进制

    #include<stdio.h> //十六进制-->十进制 eg. (十六进制)AB-->171(十进制) 
    #include<math.h>                                  //ABCD-->43981
    int main()
    {
    	int i,j,k=0;
    	long int sum=0,tmp;
    	char str[15],a[15]; 
    	gets(str);
    	for(i=0;str[i]!='\0';i++)
    	{
    		if(str[i]>='0'&&str[i]<='9')
    			a[i]=str[i]-'0';
    		if(str[i]>='a'&&str[i]<='z')
    			a[i]=str[i]-'a'+1+9;
    		if(str[i]>='A'&&str[i]<='Z')
    			a[i]=str[i]-'A'+1+9;
    	}
    	for(j=i-1;j>=0;j--)
    	{
    		tmp=a[j]*pow(16,k);
    		sum+=tmp;
    		k++;
    	}
    	printf("%ld",sum);
    	return 0;	
    }
    //#include<stdio.h>         //方法二:参看大佬的解法   
    //int main()                //16-->10进制 
    //{
    //	int num = 0;
    //    printf("输入一个十六进制数: ");
    //    scanf("%x", &num);
    //    printf("十六进制数 %x 转换为十进制为 %d\n", num, num);
    //	return 0;
    //}
    

    十进制 --> 十六进制

    #include<stdio.h>
    int main()
    {
    	int n,i=0,j;
    	char ten[16],str[17]="0123456789ABCDEF";  //10进制-->16进制 
    	scanf("%d",&n);                           //46-->2E; 59-->3B
    	while(n)                                  //46= 2*16^1 + 14*16^0
    	{
    		ten[i++]=str[n%16];
    		n=n/16;
    	}
    	for(j=i-1;j>=0;j--)
    		printf("%c",ten[j]); 
    	return 0;
    }
    

    在这里插入图片描述

    展开全文
  • 用‘栈’的思想编写一个十进制转换二进制、八进制或十六进制的程序根据进制转换方法,如十进制向二进制转换,将转换的十进制整数除以二进制基数(2),得到余数和商,如果商不0,该商继续做被除数,除以基数,得到...

    用‘栈’的思想编写一个十进制转换二进制、八进制或十六进制的程序

    根据进制转换方法,如十进制向二进制转换,将转换的十进制整数除以二进制基数(2),得到余数和商,如果商不为0,该商继续做被除数,除以基数,得到余数和商,此过程一直进行,直到得到的商为0时停止,此时得到的所有余数逆序排列就是转换得到的二进制数。十进制转换其他进制(八、十六)方法和当前方法相同,故可以扩展得到十进制向二、八、十六进制转换的统一算法。由于十进制数转换其他进制数时符合栈的特点“先进后出”,即先得到的余数是低位,后得到的余数是高位,因此这里利用栈做工具,保存转换过程中得到的余数。这里的栈需要自己定义,可以定义顺序栈,也可以定义链栈。可以将栈的定义及其基本操作放在一个头文件中,如果哪个程序需要就可以包含该头文件,而不需要每次都重新编写栈的代码。

    首先运用顺序栈

    头文件
    #include #define MAX 100typedef int SElemType;typedef struct{ SElemType   base[MAX];   // 栈底指针 int  top;                // 栈顶指针                          //当前已分配的存储空间,以元素为单位。}SqStack;bool InitStack( SqStack &s ){        // 初始化顺序栈, 构造一个空栈 s.top =-1; return true;}// InitStackbool Push(SqStack &s,SElemType e){        //把元素e入栈   if( s.top ==MAX-1)     // 若栈满,返回false       return false;    s.top++;  s.base[s.top]= e;  return true;     }// Pushbool Pop( SqStack &s, SElemType &e ){        // 出栈 if( s.top == -1)     // 空吗?   return false; e = s.base[s.top];  s.top --; return true;}// Popbool StackEmpty(SqStack s){        //判栈空   return(s.top==-1);}

    主程序

    #include #include"shujujiegou_shunxuzhan.h"void conversion (int N,int B) {     SqStack S;    int temp,x;    InitStack(S); // 构造空栈    while (N)  {           temp=N%B;   Push(S,temp);   N=N/B; } while (!StackEmpty(S))     {      Pop(S,x);        switch(x)  {  case 10:putchar('A');break;  case 11:putchar('B');break;  case 12:putchar('C');break;  case 13:putchar('D');break;  case 14:putchar('E');break;  case 15:putchar('F');break;  default :printf("%d",x);//x<=9时原样输出  }   } printf("\n");} // conversionint main(){     int m,n;     printf("这是一个十进制数转化为二进制数、八进制数及十六进制数的演示程序……\n");     printf("请输入十进制数:");     scanf("%d",&m);     printf("\n");     printf("请输入你想将十进制转换成的进制:");     scanf("%d",&n);     printf("十进制的%d转换成%d进制的数是:",m,n);     conversion(m,n);     printf("\n");     return 0;}

    链栈

    头文件
    #include typedef char ElemType ;typedef struct linknode{    ElemType data;    struct linknode *next;  }LiStack;  void InitStack(LiStack * &s);//构造空栈  void DestoryStack(LiStack * &s);//销毁栈  bool StackEmpty(LiStack * s);//判栈空  void Push(LiStack * &s, ElemType e);//压栈  bool Pop(LiStack * &s, ElemType &e);//出栈  bool GetTop(LiStack * s, ElemType &e);//取栈顶元素  void InitStack(LiStack * &s){      s = (LiStack * )malloc(sizeof(LiStack));   s -> next = NULL;   }   void DestoryStack(LiStack * &s){       LiStack * p = s, *q = s -> next;   while(q != NULL)    {           free(p);             p = q;           q = p -> next;    }   }   bool StackEmpty(LiStack * s){    return (s -> next == NULL);}void Push(LiStack * &s, ElemType e){    LiStack * p;    p = (LiStack *)malloc(sizeof(LiStack));    p -> data = e;    p -> next = s -> next;    s -> next = p;}bool Pop(LiStack * &s, ElemType &e){    LiStack * p;    if(s -> next == NULL)        return false;    p = s -> next;    e = p -> data;    s -> next = p -> next;    free(p);    return true;}bool GetTop(LiStack * s, ElemType &e){    if(s -> next == NULL)        return false;    e = s -> next -> data;    return true;}

    程序代码

    #include#include#include"shujujiegou_lianzhan.h"void   trans(int a,int b){     LiStack * s;    InitStack(s);    int yu;    ElemType e;    while(a)     {        yu = a % b;        if(yu >= 10)         {            ElemType p = yu + 'A' - 10;//转换为对应字符的ASCII值            Push(s, p);        }        else         {            ElemType p = yu + '0';//转换为对应数字字符的ASCII值            Push(s, p);        }        a /= b;    }        while(!StackEmpty(s))    {        Pop(s, e);        printf("%c", e);    }    printf("\n");    DestoryStack(s);}int main(){    int n;    while(1)    {    printf("————十进制向二进制、八进制、十六进制转换器—————\n\n");    printf("请输入一个十进制数(要求大于或等于零,其他则退出!):");    scanf("%d", &n);    if(n<0) break;    printf("十进制数%d转换为二进制数为:",n);    trans(n,2);    printf("十进制数%d转换为八进制数为:",n);    trans(n,8);    printf("十进制数%d转换为十六进制数为:",n);    trans(n,16);    system("pause");//暂停作用,包含在stdlib.h中    system("cls");//清屏作用,包含在stdlib.h中       }        return 0;}

    运行结果图

    30f4445e8d54e83413e9171db41e6279.png

    展开全文
  • #include <iostream.h> //十进制转换成二进制数字 void fun_1(int n) { if(n) cout;... } } //十进制数字转换八进制数字 void fun_2(int n) { if(n) cout; if(n>=8) { fun_2(n/8; cout; } } //十
  • 类型Integer的对象包含一个类型int的字段。Integer类的toOctalString()方法将整数参数的字符串表示形式返回以8底的无符号整数。示例importjava.util.Scanner;publicclassDecimalToOctal{...

    java.lang.Integer类将原始类型int的值包装在对象中。类型为Integer的对象包含一个类型为int的字段。

    Integer类的toOctalString()方法将整数参数的字符串表示形式返回为以8为底的无符号整数。

    示例import java.util.Scanner;

    public class DecimalToOctal {

    public static void main(String args[]){

    Scanner sc = new Scanner(System.in);

    System.out.println("Enter a decimal number ::");

    int decimal = sc.nextInt();

    String result = Integer.toOctalString(decimal);

    System.out.println("Octal value of the given decimal number is ::"+result);

    }

    }

    输出结果Enter a decimal number ::

    45

    Octal value of the given decimal number is ::55

    展开全文
  • 用‘栈’的思想编写一个十进制转换二进制、八进制或十六进制的程序根据进制转换方法,如十进制向二进制转换,将转换的十进制整数除以二进制基数(2),得到余数和商,如果商不0,该商继续做被除数,除以基数,得到...

    用‘栈’的思想编写一个十进制转换二进制、八进制或十六进制的程序

    根据进制转换方法,如十进制向二进制转换,将转换的十进制整数除以二进制基数(2),得到余数和商,如果商不为0,该商继续做被除数,除以基数,得到余数和商,此过程一直进行,直到得到的商为0时停止,此时得到的所有余数逆序排列就是转换得到的二进制数。十进制转换其他进制(八、十六)方法和当前方法相同,故可以扩展得到十进制向二、八、十六进制转换的统一算法。由于十进制数转换其他进制数时符合栈的特点“先进后出”,即先得到的余数是低位,后得到的余数是高位,因此这里利用栈做工具,保存转换过程中得到的余数。这里的栈需要自己定义,可以定义顺序栈,也可以定义链栈。可以将栈的定义及其基本操作放在一个头文件中,如果哪个程序需要就可以包含该头文件,而不需要每次都重新编写栈的代码。

    首先运用顺序栈

    头文件
    #include #define MAX 100typedef int SElemType;typedef struct{ SElemType   base[MAX];   // 栈底指针 int  top;                // 栈顶指针                          //当前已分配的存储空间,以元素为单位。}SqStack;bool InitStack( SqStack &s ){        // 初始化顺序栈, 构造一个空栈 s.top =-1; return true;}// InitStackbool Push(SqStack &s,SElemType e){        //把元素e入栈   if( s.top ==MAX-1)     // 若栈满,返回false       return false;    s.top++;  s.base[s.top]= e;  return true;     }// Pushbool Pop( SqStack &s, SElemType &e ){        // 出栈 if( s.top == -1)     // 空吗?   return false; e = s.base[s.top];  s.top --; return true;}// Popbool StackEmpty(SqStack s){        //判栈空   return(s.top==-1);}

    主程序

    #include #include"shujujiegou_shunxuzhan.h"void conversion (int N,int B) {     SqStack S;    int temp,x;    InitStack(S); // 构造空栈    while (N)  {           temp=N%B;   Push(S,temp);   N=N/B; } while (!StackEmpty(S))     {      Pop(S,x);        switch(x)  {  case 10:putchar('A');break;  case 11:putchar('B');break;  case 12:putchar('C');break;  case 13:putchar('D');break;  case 14:putchar('E');break;  case 15:putchar('F');break;  default :printf("%d",x);//x<=9时原样输出  }   } printf("\n");} // conversionint main(){     int m,n;     printf("这是一个十进制数转化为二进制数、八进制数及十六进制数的演示程序……\n");     printf("请输入十进制数:");     scanf("%d",&m);     printf("\n");     printf("请输入你想将十进制转换成的进制:");     scanf("%d",&n);     printf("十进制的%d转换成%d进制的数是:",m,n);     conversion(m,n);     printf("\n");     return 0;}

    链栈

    头文件
    #include typedef char ElemType ;typedef struct linknode{    ElemType data;    struct linknode *next;  }LiStack;  void InitStack(LiStack * &s);//构造空栈  void DestoryStack(LiStack * &s);//销毁栈  bool StackEmpty(LiStack * s);//判栈空  void Push(LiStack * &s, ElemType e);//压栈  bool Pop(LiStack * &s, ElemType &e);//出栈  bool GetTop(LiStack * s, ElemType &e);//取栈顶元素  void InitStack(LiStack * &s){      s = (LiStack * )malloc(sizeof(LiStack));   s -> next = NULL;   }   void DestoryStack(LiStack * &s){       LiStack * p = s, *q = s -> next;   while(q != NULL)    {           free(p);             p = q;           q = p -> next;    }   }   bool StackEmpty(LiStack * s){    return (s -> next == NULL);}void Push(LiStack * &s, ElemType e){    LiStack * p;    p = (LiStack *)malloc(sizeof(LiStack));    p -> data = e;    p -> next = s -> next;    s -> next = p;}bool Pop(LiStack * &s, ElemType &e){    LiStack * p;    if(s -> next == NULL)        return false;    p = s -> next;    e = p -> data;    s -> next = p -> next;    free(p);    return true;}bool GetTop(LiStack * s, ElemType &e){    if(s -> next == NULL)        return false;    e = s -> next -> data;    return true;}

    程序代码

    #include#include#include"shujujiegou_lianzhan.h"void   trans(int a,int b){     LiStack * s;    InitStack(s);    int yu;    ElemType e;    while(a)     {        yu = a % b;        if(yu >= 10)         {            ElemType p = yu + 'A' - 10;//转换为对应字符的ASCII值            Push(s, p);        }        else         {            ElemType p = yu + '0';//转换为对应数字字符的ASCII值            Push(s, p);        }        a /= b;    }        while(!StackEmpty(s))    {        Pop(s, e);        printf("%c", e);    }    printf("\n");    DestoryStack(s);}int main(){    int n;    while(1)    {    printf("————十进制向二进制、八进制、十六进制转换器—————\n\n");    printf("请输入一个十进制数(要求大于或等于零,其他则退出!):");    scanf("%d", &n);    if(n<0) break;    printf("十进制数%d转换为二进制数为:",n);    trans(n,2);    printf("十进制数%d转换为八进制数为:",n);    trans(n,8);    printf("十进制数%d转换为十六进制数为:",n);    trans(n,16);    system("pause");//暂停作用,包含在stdlib.h中    system("cls");//清屏作用,包含在stdlib.h中       }        return 0;}

    运行结果图

    9c7ecc3e6733d3f0bbb5da848056b229.png

    展开全文
  • 使用程序来实现十进制转换为不同的进制,那么关键在于如何将每次的余数保存并正确输出。要知道余数最后是按照倒序输出的,所以这个是一个问题点。(进制的转换方法计算在我的上一篇文章中) #include <stdio.h&...
  • 进制换算在工作中是一项必不可少的技能,例如在RTC中得到的数据十六进制的,但是我们使用时用的是十进制。这就免不了进行进制之间的换算。进制之间的换算可以手动计算进行换算,也可以编写程序进行换算。这里主要...
  • 用顺序表实现数值转换(此程序为十进制转换八进制) #include <stdio.h> #include <stdlib.h> #define OK 1 #define ERROR 0 #define OVERFLOW -2 #define STACKSIZE 100 #define ...
  • 要将八进制转换为其他进制,例如二进制,十六进制等,Java代码如下:示例publicclassDemo{publicstaticStringbase_convert(Stringnum,intsource,intdestination){returnInteger.toString(Integer.parseInt(num,...
  • 写一个程序,将输入的十进制数据M 转换为八进制数据M8,将其调试通过.在此基础上修改程序,实现十进制数据M 向N 进制(2或8或16)的转换. #include<stdio.h> #include<stdlib.h> #define INIT_SIZE 100 #...
  • 进制类型进制可以分为以下...十进制转换为二进制(整数)(最后一个一可以直接写上去)2.十进小数制转二进(如果是负数的话只需要在前面加入负号即可)1.3二进制转十进制整数1.4二进制转十进制小数八进制(0,1,2,3,4,5,6,7...
  • 输入2个十进制整数,分别按照十六进制,十进制进制表格式输出。 【样例输入】 12 23 【样例输出】 0xc 12 014 0x17 23 027 【样例说明】 每一项的输出宽度均8位,左对齐。 #include <...
  • 用‘栈’的思想编写一个十进制转换二进制、八进制或十六进制的程序根据进制转换方法,如十进制向二进制转换,将转换的十进制整数除以二进制基数(2),得到余数和商,如果商不0,该商继续做被除数,除以基数,得到...
  • Java程序八进制数与十进制相互转换在此程序中,您将学习...示例1:将十进制转换为八进制程序publicclassDecimalOctal{publicstaticvoidmain(String[]args){intdecimal=78;intoctal=convertDecimalToOctal(decimal...
  • //转换为八进制数 public static void toOct(int num) { change(num,3,7); System.out.println(); } //转换为十六进制数 public static void toHex(int num) { change(num,4,15); System.out.println...
  • 编写函数,其功能为把一个十进制转换为其对应的八进制数。程序读入一个十进制数,调用该函数实现数制转换后,输出对应的八进制数。 样例输入 9274 样例输出 22072 样例输入 18 样例输出 ...
  • 题目 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数...再将十进制转换为八进制 十六进制到十进制的转换代码: int Sixteen_Ten(char *p) { int k =0; int i =0; int sum=0; int len ...
  • #include # define maxize 12 typedef struct { int tran[maxize]; int *top; }sqstack; void initstack(sqstack *s) { s->top=s->tran; } void push(sqstack *s,int a) { int *p; if(s->top-s->tran>10) pr
  • C语言编程之八进制转换为十进制

    万次阅读 2019-03-12 09:04:54
    问题描述:使用C语言编程实现八进制转换为十进制程序源码: #include&lt;stdio.h&gt; void main() { char *p,s[6];int n; p=s; gets(p); n=0; while(*(p)!='\0') {n=n*8+*p-'0'; p++;} printf("...
  • 也就是任意输入十进制数字,程序能自动将其转化另外的数制表示的值,例如:  输入: 130 (十进制)  输出: 10000010 (二进制) 输出: 202 (八进制) 输出: 82 (十六进制)  1、从程序算法的优化程度...
  • Python 八进制转换为十进制代码

    千次阅读 2018-11-21 20:58:00
    Python 八进制转换为十进制的代码示例,包括了程序分析和程序源代码,分享源代码如下: #整数版 from functools import reduce n=[int(x) for x in input('输入一个整数:')] print(reduce(lambda x,y:x*8+y,n...
  • if(n==0) printf("对应八进制:/n0"); while(n!=0) {if(S.top==100) printf("/n栈满结束"); else {x=n%2; pushstack(S,x); n=n/2; } } if(S.top==-1) printf("/n栈空结束"); else while(S.top!=-1){...
  • 计算后的结果又由二进制转换成文字、整数、小数等,这都由操作系统自动完成,并不需要人们手工去做,想要了解数据在计算机内的存储方式,就必须了解二进制(还有八进制/十六进制)。人们通常采用的数制有...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 418
精华内容 167
关键字:

十进制转换为八进制程序