-
C语言【程序48】题目:八进制转换为十进制、二进制转换为十进制、十进制转换为二进制 、十进制转换为八进制...
2020-03-18 12:14:24//题目:八进制转换为十进制 #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; }
-
bash 将二进制转换为十进制_用‘栈的思想编写一个十进制转换二进制、八进制或十六进制的程序...
2021-01-03 23:00:32用‘栈’的思想编写一个十进制转换二进制、八进制或十六进制的程序根据进制转换方法,如十进制向二进制转换,将转换的十进制整数除以二进制基数(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;}
运行结果图
-
十进制转换为二进制 八进制 十六进制c++程序代码.doc
2020-11-10 10:26:10#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; } } //十 -
十进制转换八进制java_Java程序将十进制数转换为八进制值
2021-02-12 22:36:40类型为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
-
c语言二进制转换十进制_用‘栈的思想编写一个十进制转换二进制、八进制或十六进制的程序...
2020-11-28 11:57:59用‘栈’的思想编写一个十进制转换二进制、八进制或十六进制的程序根据进制转换方法,如十进制向二进制转换,将转换的十进制整数除以二进制基数(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;}
运行结果图
-
十进制转换为十六进制-八进制-二进制的程序设计
2019-07-19 14:19:12使用程序来实现十进制转换为不同的进制,那么关键在于如何将每次的余数保存并正确输出。要知道余数最后是按照倒序输出的,所以这个是一个问题点。(进制的转换方法计算在我的上一篇文章中) #include <stdio.h&... -
十进制转换为十六进制-八进制-二进制的进制转换计算
2019-07-16 09:47:00进制换算在工作中是一项必不可少的技能,例如在RTC中得到的数据为十六进制的,但是我们使用时用的是十进制。这就免不了进行进制之间的换算。进制之间的换算可以手动计算进行换算,也可以编写程序进行换算。这里主要... -
用顺序表实现数值转换(此程序为十进制转换成八进制)
2019-04-13 16:18:03用顺序表实现数值转换(此程序为十进制转换成八进制) #include <stdio.h> #include <stdlib.h> #define OK 1 #define ERROR 0 #define OVERFLOW -2 #define STACKSIZE 100 #define ... -
java 十六进制转八进制_Java 程序实现八进制转换为二进制,十进制,十六进制
2021-03-07 00:46:51要将八进制转换为其他进制,例如二进制,十六进制等,Java代码如下:示例publicclassDemo{publicstaticStringbase_convert(Stringnum,intsource,intdestination){returnInteger.toString(Integer.parseInt(num,... -
栈实现十进制转换为二进制,八进制和十六进制
2019-10-12 23:50:07写一个程序,将输入的十进制数据M 转换为八进制数据M8,将其调试通过.在此基础上修改程序,实现十进制数据M 向N 进制(2或8或16)的转换. #include<stdio.h> #include<stdlib.h> #define INIT_SIZE 100 #... -
二进制转十进制python程序_二进制转换(使用Python实现十进制转换器)
2021-01-12 08:41:25进制类型进制可以分为以下...十进制转换为二进制(整数)(最后一个一可以直接写上去)2.十进小数制转二进(如果是负数的话只需要在前面加入负号即可)1.3二进制转十进制整数1.4二进制转十进制小数八进制(0,1,2,3,4,5,6,7... -
C++程序设计:整数进制输出(十进制转换为十六进制、八进制)
2019-12-30 00:31:28输入2个十进制整数,分别按照十六进制,十进制,八进制表格式输出。 【样例输入】 12 23 【样例输出】 0xc 12 014 0x17 23 027 【样例说明】 每一项的输出宽度均为8位,左对齐。 #include <... -
定义并调用函数 十进制转二进制_用‘栈的思想编写一个十进制转换二进制、八进制或十六进制的程序...
2020-10-21 18:06:38用‘栈’的思想编写一个十进制转换二进制、八进制或十六进制的程序根据进制转换方法,如十进制向二进制转换,将转换的十进制整数除以二进制基数(2),得到余数和商,如果商不为0,该商继续做被除数,除以基数,得到... -
java八进制数转十进制数_Java程序八进制数与十进制相互转换
2021-02-26 12:56:59Java程序八进制数与十进制相互转换在此程序中,您将学习...示例1:将十进制转换为八进制的程序publicclassDecimalOctal{publicstaticvoidmain(String[]args){intdecimal=78;intoctal=convertDecimalToOctal(decimal... -
十进制转换为二进制、八进制、十六进制程序
2014-08-09 11:48:36//转换为八进制数 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... -
十进制转换为八进制 -- 蓝桥杯(两种方法)
2015-04-09 15:46:15编写函数,其功能为把一个十进制数转换为其对应的八进制数。程序读入一个十进制数,调用该函数实现数制转换后,输出对应的八进制数。 样例输入 9274 样例输出 22072 样例输入 18 样例输出 ... -
C语言程序实现:十六进制转换为八进制(绝对用心仔细)
2019-09-07 11:53:46题目 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数...再将十进制转换为八进制 十六进制到十进制的转换代码: int Sixteen_Ten(char *p) { int k =0; int i =0; int sum=0; int len ... -
一个简单的十进制转换为八进制的程序
2009-11-11 21:06:00#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<stdio.h> void main() { char *p,s[6];int n; p=s; gets(p); n=0; while(*(p)!='\0') {n=n*8+*p-'0'; p++;} printf("... -
c#智能进制转换器 十进制数字转换为二进制 ,八进制,十六进制
2010-03-19 18:56:12也就是任意输入十进制数字,程序能自动将其转化为另外的数制表示的值,例如: 输入: 130 (十进制) 输出: 10000010 (二进制) 输出: 202 (八进制) 输出: 82 (十六进制) 1、从程序算法的优化程度... -
Python 八进制转换为十进制代码
2018-11-21 20:58:00Python 八进制转换为十进制的代码示例,包括了程序分析和程序源代码,分享源代码如下: #整数版 from functools import reduce n=[int(x) for x in input('输入一个整数:')] print(reduce(lambda x,y:x*8+y,n... -
有个问题,实在找不出来了,万分感谢!(程序目的是十进制转换为八进制)
2015-10-26 13:07:55if(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){... -
c++将十进制转换为二进制 小数_预备知识:Java程序设计基础->进制转换
2020-11-24 03:26:38计算后的结果又由二进制转换成文字、整数、小数等,这都由操作系统自动完成,并不需要人们手工去做,想要了解数据在计算机内的存储方式,就必须了解二进制(还有八进制/十六进制)。人们通常采用的数制有十...