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

#include<stdio.h>

#include<math.h>

#include<string.h>

//其他任意进制转换为十进制

int main()

{

int trans(char a[],int );

char strupr(char );

char arr[100];

int t;

printf("请输入进制的类型:");

scanf("%d",&t);

printf("请输入该进制的数:");

scanf("%s",arr);

int num = trans(arr,t);

printf("该数的十进制是:%d\n",num);

return 0;

}

char strupr(char ch)//小写字母转换为大写字母

{

if(ch>=‘a‘ && ch<=‘z‘)

{

ch = ch - 32;

}

printf("%c",ch);

return ch;

}

int trans(char chs[],int m)//转换为十进制

{

char *p = chs;

int len = strlen(p);

int temp,sum=0;

while(len>0)

{

char ss = strupr(*p);

if(ss>=‘0‘ && ss<=‘9‘)

{

temp = (ss-‘0‘)*pow(m,len-1);//m表示进制类型(2、8、16)

sum = sum + temp;

}

if(ss>=‘A‘ && ss<=‘F‘)

{

temp = (ss-‘A‘+10)*pow(m,len-1);

sum = sum + temp;

}

p++;

len--;

}

printf("\n");

return sum;

}

时间: 2024-09-28 21:26:26

C语言:其他进制数转换为十进制(方法一)的相关文章

javascript将10进制数转换为2进制

javascript中将10进制数转换为2进制有两种方式 一种是直接用toString(2)这个方法,一种是自己写一个方法换算,以下是代码: var num = 11; var str = num.toString(2); /*将十进制数转变为二进制数*/ function dec2bin(num){ var result = ""; if(num == 0){ return "0"; } while(num > 0){ result = num % 2 +

用栈实现2进制数到十进制数的转换

问题:用栈实现2进制数到十进制数的转换 解析:用到<math.h>库中的pow函数,pow(2,i)表示2^i.当进行形参到实参的传送时,需要改变栈中的元素时传入&s,当不改变栈中元素,只对栈s进行操作时,传入s 代码实现: /*利用栈的特点将2进制数转换为10进制数 */ #include<stdio.h> #include<stdlib.h> #include<math.h> #define ElemType char #define Init_

用Python内置函数轻松实现各种进制数之间的转换

0.说明 9个月没有写过Python了,这9个月都在华为的ICT知识海洋里遨游,前段时间刚刚通过了HCIE的认证,想着还是喜欢Python和Linux多些,所以又回来了,后面会有越来越多的Python干货分享给大家,比如后面会打算写一个完整的Linux主机监控项目的教程给初入门的朋友,相信这会是非常不错的体验. 那段时间,曾经有些时候,我需要对各种进制进行转换,因为虽然那会不写Python了,但是还是用Python自带的解释器用来做简单的数学计算,很方便. 在网上找,看有没有方法可以实现各种进制

【学习ios之路:C语言】进制.位运算.栈

1.进制转换 1).10进制转为N进制.方法:(连除倒取余). 2).N进制转换为10进制.方法:(按权求和法):当前位上的数乘以基数的位数减1次方. 例: 0b1111 ---- 1* 2^3 + 1*2^2 +1 * 2^1 +1*2^0 = 15; 038 ----- 3*16^1 +8*16^0 = 56; 3).N进制转换N进制. 例如: 二进制 --- 16进制 1010   0011  ----  A 3 1111   0011  ----  F 3 int a = 010;//8

C语言-对字符串二维数组各个元素进行比较-十进制数转化为其他进制数-进行规则矩阵的输出-190225

//编写一个函数:从传入的num个字符中找到最长的一个字符,并通过max传回该串地址. //重点:切记这里a[0]就是一个地址. 1 #include<conio.h> 2 #include<stdio.h> 3 #include<string.h> 4 #include<stdlib.h> 5 6 char *fun(char (*a)[81], int num, char *max) 7 { 8 max = a[0];//切记这里a[0]就是一个地址.

C语言实现字符串中(10进制和16进制)转成十进制数

如何将字符串中的10进制数和16进制数提取出来,看以下代码: #include <stdio.h> typedef char TUINT8 ; typedef int TUINT32; TUINT32 Read_DecNumber(const TUINT8* str); TUINT32 Read_HexNumber(const TUINT8* str); int main(void) { int ret = Read_DecNumber("1000"); int d = R

将十进制数转成任何指定的进制数

/** * * <p> * Description:将十进制数转成任何指定的进制数 * <p> * <p> * Copyright:copyright (c) 2013 * <p> * <p> * Create Date:2013-12-21 * <p> * <p> * Company:ShangHai University * <p> * * @author WANGXU * @versionv1.1 */

给定一个十进制数,将其转化为N进制数-----17年滴滴笔试题

题目:给定一个十进制数M,将其转化为N进制数,其中2<=N<=16,其中N为32为整型数; 输入:M N,如7 2 输出转化结果:111 注意点:考虑负数的情况,记得添加负号: 思路:1. 使用一个辅助栈来存放M对N取余的结果(M%N):   2. 处理余数<=9和>9两种情况,因为按照16进制,>9的数用ABCDEF取代   3. 再更新取余后M的取值:M=M/N:   4. 循环处理2,3两个步骤,直到M=0: 5. 处理最终结果,出栈,直到栈为空: 代码如下: pack

4位bcd数转换为2进制数

DATA   SEGMENTBUF    DW  1234HBUF1   DW  ?    ;2进制数放到buf1内存单元DATA   ENDSCODE   SEGMENTASSUME CS:CODE,DS:DATABEGIN: MOV AX,DATA       MOV DS,AX       MOV DX,BUF       CALL DISC       MOV AH,4CH       INT 21H       DISC PROC       XOR  AX,AX       MOV