首页 > 其他分享 >1.10 数制轮换

1.10 数制轮换

时间:2023-04-26 20:44:59浏览次数:40  
标签:数制 1.10 temp int 轮换 char num decimal

#include <stdio.h>

#define MAXCHAR 101

/*最大允许字符串长度*/

int char_to_num (char ch) ;

/*返回字符对应的数字*/

char num_to_char (int num) ;

/*返回数字对应的字符*/

long source_to_decimal (char temp[], int source) ;

/*返回由原数转换成的十进制数*/

int decimal_to_object (char temp[], long decimal_num, int object);
/*返回转换成目标数制后字符数组的长度*/
void output (char temp[], int length) ;
/*将字符数组逆序打印*/
main()
{
int source;
/*存储原数制*/
int object;
/*存储目标数制*/
int length;
/*存储转换成目标数制后字符数组的长度*/
long decimal_num;
/*存储转换成的十进制数*/
char temp [MAXCHAR] ;
/*存储待转换的数值和转换后的数值*/
int flag=1;
/*存储是否退出程序的标志/
while (flag)
/*利用输入的flag值控制循环是否结束*/
{
printf ("转换前的数是: ") ;scanf ("号s", temp) ;
printf ("转换前的数制是: ") ;scanf ("号d", &source) ;
printf ("转换后的数制是: ");

scanf ("%d", &object) ;

printf ("转换后的数是: ");

decimal_ num=source_ to_ decimal (temp, source) ;

length=decimal_ to_ obj ect (temp, decimal_ num, object) ;output (temp, length) ;

printf ("继续请输入1,否则输入0: \n");

scanf ("%d", &flag) ;

/*将字符转换成数字*/

int char to_ num (char ch)

if (ch>='0'&&ch<='9')return ch-'0' ;

/*将数字字符转换成数字*/

else

return ch-'A'+10;

/*将字母字符转换成数字*/

char num to char (int num)

if (num>=0&&num<=9)

return (char) ('O'+num-0) ;

/*将0~9之间的数字转换成字符*/

else

return (char) ('A'+num-10) ;

/*将大于10的数字转换成字符*/

long source_ to_ decimal (char temp[], int source)

long decimal num=0;

/*存储展开之后的和*/

int length;

int i;

for (i=0;temp[i]!='10' ;i++) ;

length=i;

for (i=0;i<=length-1;i++)

/*累加*/

decimal num= (decimal num* source)+char_ to num(temp[i]);return decimal num;

 20:29:58
int decimal to object (char temp[], long decimal_ num, int object)

int i=0;

while (decimal num)

temp[i]=num to char (decimal_ num%object) ;

/*求出余数并转换为字符*/

dec imal_ num=decimal num/ object ;

/*用十进制数除以基数*/

i++;

temp[i]='lo' ;return i;

void

output (char temp[] , int length)

int i;

for (i=length-1;i>=0;i--)

/*输出temp数组中的值*/

printf ("8c", temp[i]) ;printf ("In") ;

}

 

标签:数制,1.10,temp,int,轮换,char,num,decimal
From: https://www.cnblogs.com/xuan-2004/p/17357216.html

相关文章

  • 数制转换
    1,问题描述:给定一个M进制的数x,实现对x向任意的一个非M进制的数的转换2.问题分析:掌握不同数制间的转换关系是解决问题的关键,这里所说的数制一般包括二进制、八进制、十六进制及十进制。除了不同的数制还有下面几个必须要了解的概念。基数:在一种数制中,只能使用一组固定的数字来表......
  • 数制转换
    问题:给定一个M进制的数x,实现对x向任意一个非M进制的数转换。分析:十进制转其他进制,整数部分除以基数取余数(取余数的方向从后往前),小数部分乘以基数取整数(取整方向从前往后);其他进制转十进制:按权展开相加;其他进制转其他进制:先转为十进制再转为其他进制。十六进制0到F,故是字符数组,因此......
  • 10.数制转化
     问题分析: 十进制整数转换为R进制整数的基本方法是:“除R取余”。具体做法为:对于十进制数整数,用R连续除要转换的十进制整数及各次所得之商,直除到商等于0时为止,则各次所得之余数即为所求R进制整数由低位到高位的值。这个过程可以写成一个简单的循环。    一般而言,对于......
  • 数制度转换
    一、问题描述:二、设计思路:  三、程序流程图:#include<stdio.h>#definea101/*最大允许字符串长度*/intchar_to_num(charch);/*返回字符对应的数字*/intnum_to_char(intnum);/*返回数字对应的字符*/longother_to_decimal(chartemp[],intother);/*返回由原数转......
  • 数制转换
    自然语言解决问题:该题目主要用来处理不同进制间互相转化,将原数转换成十进制数字,接着求出转换成目标数制后字符数组的长度,并逆序打印字符数组。具体代码:#include<stdio.h>#defineMAXCHAR101intchar_to_num(charch);charnum_to_char(intnum);longsource_to_decimal(char......
  • 数制转换
    给定一个M进制的数x,实现对x向任意一个非M进制的数的转换。利用字符和数字之间的转换将要变换进制的数进行转换成要求进制的数。#include<iostream>usingnamespacestd;#defineMAXCHAR101intchar_to_num(charch){ if(ch>='0'&&ch<='9') { returnch-'0'; }else{ returnch......
  • 数制转换
    问题描述:给定一个M数制的整数x,转换为N数制的数并输出;问题分析:数制的任意转换需要清除数制与数制之间的转换关系,一般来说十进制与其他数制的转换是较为简单和有规律的;所以可以先将改数制转换为十进制数再转换为N进制数;算法设计:1.输入一个整数M作为其起始的数制2.输入一个M数制......
  • 轮换数组——给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数
    示例输入:nums=[1,2,3,4,5,6,7],k=3输出:[5,6,7,1,2,3,4]解释:向右轮转1步:[7,1,2,3,4,5,6]向右轮转2步:[6,7,1,2,3,4,5]向右轮转3步:[5,6,7,1,2,3,4]这里使用reverse函数来解决问题,思路是:1.反转整个字符串2.反转区间为前k的子串3.反转区间为k到末尾的......
  • 解决 ubuntu 无法关机 Dell Studio 1569 Cannot Shutdown in Ubuntu 11.10 or 12.04
    ShutdowncomputerusingterminalinUbuntufyouwanttoshutdownyourcomputerwhatdoyoudo?Simplygotoshutdownbuttonandclickshutdownisn’t? Haveyoueverwonderedhowwouldyoushutdownyourpcifyourgdm(GraphicalUserInterface)isnotwork......
  • 计算机中进位计数制及其转换
     计算机中常用的几种进位计数制的表示进位制基数基本符号权形式表示二进制20,12iB八进制80,1,2,3,4,5,6,78iO十进制100,1,2,3,4,5,6,7,8,910iD十六进制1......