n进制转为十进制

主程序代码 -


 1 #include <stdio.h>
2 #include <string.h>
3 main()
4 {
5 long t1;
6 int i, n, t, t3;
7 char a[100];
8 printf("please input a number string:\n");
9 gets(a); /*输入n进制数存到数组a中*/
10 strupr(a); /*将a中的小写字母转换成大写字母*/
11 t3 = strlen(a); /*求出数组a的长度*/
12 t1 = 0; /*为t1赋初值0*/
13 printf("please input n(2or8or16):\n");
14 scanf("%d", &n); /*输入进制数*/
15 for (i = 0; i < t3; i++)
16 {
17 if (a[i] - ‘0‘ >= n && a[i] < ‘A‘ || a[i] - ‘A‘ + 10 >= n) /*判断输入的数据和进制数是否相符*/
18 {
19 printf("data error!!"); /*输出错误*/
20 exit(0); /*退出程序*/
21 }
22 if (a[i] >= ‘0‘ && a[i] <= ‘9‘) /*判断是否为数字*/
23 t = a[i] - ‘0‘; /*求出该数字赋给t*/
24 else if (n >= 11 && (a[i] >= ‘A‘ && a[i] <= ‘A‘ + n - 10)) /*判断是否为字母*/
25 t = a[i] - ‘A‘ + 10; /*求出字母所代表的十进制数*/
26 t1 = t1 * n + t; /*求出最终转换成的十进制数*/
27 }
28 printf("the decimal is %ld\n", t1); /*将最终结果输出*/
29 }

程序来自 :c语言程序开发范例宝典

时间: 2024-10-13 18:01:45

n进制转为十进制的相关文章

JavaSE8基础 Integer.parseInt 将[2,36]进制转为十进制

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        code: package jizuiku3; public class Demo011 { public static void main(String[] args) { System.out.println(Integer.parseInt("100", 2));// 这个字符串是二进制的形式 Sys

c-八进制 转 十进制

概述 其实x进制转十进制的算法都差不多,不过如果是针对于字符形式,他们却有点不同.使用指针和数组的形式计算,又不同.这里演示将字符型的数组形式的八进制转成十进制: 1 #include <stdio.h> 2 #include <string.h> 3 #include <math.h> 4 5 #define MAX 10 6 7 //初始化数组为八进制. 8 void 9 init(char *octal) { 10 gets(octal); 11 } 12 13

(HDUStep 1.2.6)decimal system(任意进制转十进制)

题目: decimal system Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3622 Accepted Submission(s): 1419   Problem Description As we know , we always use the decimal system in our common life, even us

- &gt;code vs 1475 m进制转十进制

1475 m进制转十进制 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 查看运行结果 题目描述 Description 将m进制数n转化成一个十进制数 m<=16 题目保证转换后的十进制数<=100 输入描述 Input Description 共一行 n和m 输出描述 Output Description 共一个数 表示m进制的n化成十进制的数 样例输入 Sample Input 1010 2 样例输出 Sample Output 10 数据范围

华为机试—“十七进制”转“十进制”

题目:"十七进制"转"十进制" 实现"十七进制"转"十进制"算法:输入一个十七进制数字的字符串(字母一律大写),输出这个数值对应的十进制结果,达到进制转换目的,范围:0-0xFFFFFFFF. #include<stdio.h> #include<string.h> void solve(char *s) { int len=strlen(s); int i=0; int ans=0; while(i&

C语言:其他进制转换为十进制(方法二)

#include<stdio.h> #include<math.h> #include<string.h> #include<ctype.h> //其他任意进制转换为十进制 int main() { int trans(char a[],int ); char arr[100]; int t; printf("请输入进制的类型:"); scanf("%d",&t); printf("请输入该进制的数:

C语言将10进制转为2进制

第一种方法: #include<stdio.h> void dectobin(int n); int main() { int x=0; scanf("%d",&x);//只能正数 dectobin(x); printf("\n"); return 0; } void dectobin(int n) { if(n/2>0) { dectobin(n/2); printf("%d",n%2); } else { print

m进制转十进制

1475 m进制转十进制 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 题目描述 Description 将m进制数n转化成一个十进制数 m<=16 题目保证转换后的十进制数<=100 输入描述 Input Description 共一行 n和m 输出描述 Output Description 共一个数 表示m进制的n化成十进制的数 样例输入 Sample Input 1010 2 样例输出 Sample Output 10 #include<

1475 m进制转十进制

题目描述 Description 将m进制数n转化成一个十进制数 m<=16 题目保证转换后的十进制数<=100 输入描述 Input Description 共一行 n和m 输出描述 Output Description 共一个数 表示m进制的n化成十进制的数 样例输入 Sample Input 1010 2 样例输出 Sample Output 10 数据范围及提示 Data Size & Hint 乘权累加法 本题比那道将十进制转换为m进制的题目还要简单,因为最后转化成的就是我们