数制转换问题

作者&投稿:闭琰 (若有异议请与网页底部的电邮联系)
数制转换问题?~

(1)录入与显示(提示:可以输入M比如2或者8,16,一组数据建立栈结
构并显示)
(2) 计算十进制结果(提示:求出此组数x的10进制值,并显示结果)
(3) 转换非M进制的数(提示:可根据非M的值进行转换,并显示结果)
(4) 保存(提示:将显示的数据数据存入文件可随时查询)
【基本要求】
(1)采用栈结构。
(2)输入数据形式和范围:可以灵活输入。
(3)输出形式:有中文提示, 简洁整齐。
(4)界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以
完成相关的功能要求。

#include "stdio.h"
#include
#define Max 50
typedef struct
{
int elem[Max];
int top;
}Sqstack;

void initstack(Sqstack*p)
{
(*p).top=-1;
}
int empty(Sqstack s)
{
if(s.top==-1)
return 1;
else
return 0;
}
void push(Sqstack*p,int x)
{
if(p->top==Max-1)
{
printf("错误信息");
exit(0);
}
p->top=p->top+1;
p->elem[p->top]=x;
}
int pop(Sqstack*p)
{
int c=p->elem[p->top];
p->top=p->top-1;
return c;
}
void main()
{
int num, base, c;
Sqstack s;
initstack(&s);
while(1)
{
printf("输入要转换的数和进制数:");
scanf("%d%d", &num, &base);
if(num<0)
break;
printf("%d(10)=",num);
while(num)
{
c=num%base;
push(&s,c);
num/=base;
}
while(!empty(s))
{
c=pop(&s);
printf("%d",c);
}
printf("(%d)
",base);
}
}

这个应该可以的,你看看。
我这个程序足以做你那两个啦,你只要把进制数输入为10 就是第一问啊。

100(H)=1*16(2次方)+0*16(1次方)+0*16(0次方)=256(D);
16进制转换为10进制后再装换为8进制

也可参见以下公式:
二进制转为 8 进制,可以 3 位二进制位编为一组(不够左侧补 0),然后从右边开始每三位按如下方式替换:
000 - 0, 001 - 1, 010 - 2, 011 - 3,
100 - 4, 101 - 5, 110 - 6, 111 - 7.
比如转换二进制数 1110101010100 那么分组为
001 110 101 010 100 按照转换方法对应转换
1 6 5 2 4
所以 1110101010100(2) = 16524(8)
又如转换为 16 进制
0000 - 0, 0001 - 1, 0010 - 2, 0011 - 3
0100 - 4, 0101 - 5, 0110 - 6, 0111 - 7
1000 - 8, 1001 - 9, 1010 - A, 1011 - B
1100 - C, 1101 - D, 1110 - E, 1111 - F
此时分组为 4 位二进制数为一组
比如转换二进制 0101010100101011010,分组:
0010 1010 1001 0101 1010
2 A 9 5 A
所以0101010100101011010(2) = 2A95A(16)
如果要 16 转 2,8 转 2,方法类似,
如果是 16 转 8,可以转换为 2 再转 8

100)H=(400)0=(256)D

20,16。
用windows中的计算器就能算阿。

(100)h=(400)O


如何解释各个进制之间的转换问题?
1、二进制数、八进制数、十六进制数转十进制数\\x0d\\x0a有一个公式:二进制数、八进制数、十六进制数的各位数字分别乖以各自的基数的(N-1)次方,其和相加之和便是相应的十进制数。个位,N=1;十位,N=2...举例:\\x0d\\x0a110B=1*2的2次方+1*2的1次方+0*2的0次方=0+4+2+0=6D\\...

进制转换的相关问题,求大神解答
所以(35.375)10=(100011.011)2 问题二:二进制——>八进制 以小数点为界,往前往后分别按三个数字一组分组,最后一组数字个数不够用0补,按照:000=0,001=1,010=2,011=3,100=4,101=5,110=6,111=7的规则逐组转换,就得到八进制数。如 (100011.011)2 =(100 011.011)2 ...

各个进制之间的转换问题
1、二进制数、八进制数、十六进制数转十进制数 有一个公式:二进制数、八进制数、十六进制数的各位数字分别乖以各自的基数的(N-1)次方,其和相加之和便是相应的十进制数。个位,N=1;十位,N=2...举例:110B=1*2的2次方+1*2的1次方+0*2的0次方=0+4+2+0=6D 110Q=1*8的2次方+1*...

十进制转八进制的小数问题
0.44×8 = 3.52,整数部分为3 0.52×8 = 4.16,整数部分为4??因此十进制的0.12换算为八进制为0.075(取小数点后三位)综合起来,十进制的193.12换算为八进制为301.075(取小数点后三位)

十进制数与二进制数相互转换的问题?
例1:十进制数88.3转换成二进制数 88\/16=5 余数8,二进制形式1000 5\/16=0 余数5,二进制形式0101 88d=01011000b=1011000b 0.3*16=4.8 整数4,二进制形式0100 0.8*16=12.8 整数12,二进制形式1100 0.8*16=12.8...循环小数 0.3d=0.0100110011001100...b,循环小数 88.3d=1011000....

进制 转换问题 急 二进制11101101的十进制数十进制数10000的16进制数...
11101101转为十进制=2^7+2^6+2^5+2^3+2^2+2^0=237 10000的十六进制=2710H

各种进制的转化怎么算?
我们以(11001.101)(二)为例讲解一下进制之间的转化问题 说明:小数部份的转化计算机二级是不考的,有兴趣的人可以看一看 1. 二 ---> 八 (11001.101)(二) 整数部分: 从后往前每三位一组,缺位处用0填补,然后按十进制方法进行转化,则有: 001=1 011=3 然后我们将结果按从下往上的顺序书写就是:31,那么这个...

进制的转换问题
之后无论添加几个0,也都不会改变这个数值的大小。举个大家比较熟悉的十进制数的例子,12034.506,最高有效位是1,最低有效位是6,那么写成0012034.56000,这个写法并没有改变其数值的大小。因此,当你进行进制转换时,可以将转换完之后的结果中的最高有效位之前的0和最低有效位之后的0都删除。

十进制转换为二进制怎样转
十进制转换为二进制是一个常见的数值转换问题,其转换过程遵循一定的规则。以下是十进制转换为二进制的步骤:除2取余法:将十进制数除以2,得到商和余数(1或0)。将商再次除以2,又得到一个新的商和余数。重复此过程,直到商为0为止。将每一步得到的余数从低位到高位依次排列,即可得到该数的二...

有关转换进制问题
一、 常用数制及其相互转换 在我们的日常生活中计数采用了多种记数制,比如:十进制,六十进制(六十秒为一分,六十分为一小时,即基数为60,运算规则是逢六十进一),……。在计算机中常用到十进制数、二进制数、八进制数、十六进制数等,下面就这几种在计算机中常用的数制来介绍一下。 1.十进制数 我们平时数数采用...

自流井区19427404975: 数制转换问题十进制26.375转换成二进制是:0.101吗?能不能有办法验证一下自己计算后的结果是否正确?谢谢 -
文哑帮备:[答案] 肯定不是,整数部分都没了啊,小数部分也不对

自流井区19427404975: 一、数制转换 1、将下列十进制数转换成二进制 55、0.3(保留三位有效数字) 14.2(保留三位有效数字) 2、一、数制转换1、将下列十进制数转换成二进制... -
文哑帮备:[答案] 1、将下列十进制数转换成二进制 55、0.3(保留三位有效数字) 14.2(保留三位有效数字)(55)10=((0*1010+101)*1010+101)2=(101*1010+101)2=(110010+101)2=(110111)2-------------------------------------------(0.3...

自流井区19427404975: 数制转换计算题,要求写出结算过程(3题)1.(217)D=( )B=( )H=( )O2.(2A3E)H=( )B=( )O3.求十进制数51和 - 67的原码、反码和补码并写出计算过程. -
文哑帮备:[答案] 1.(217)D=( 11011001 )B=( D9 )H=( 331 )O2.(2A3E)H=(101010001111110 )B=( 25076 )O3.求十进制数51和-67的原码、反码和补码并写出计算过程.51D=110011B-67D=-1000011B正数的原码、反吗、补码不变负数原码用1表示符...

自流井区19427404975: 如何进行数制转换? -
文哑帮备: 十 -----> 二(25.625)(十)整数部分:25/2=12......112/2=6 ......06/2=3 ......03/2=1 ......11/2=0 ......1然后我们将余数按从下往上的顺序书写就是:11001,那么这个11001就是十进制25的二进制形式小数部分:0.625*2=1.250.25 *2=0....

自流井区19427404975: 数制转换:(10100101)2=( )10,(70)10=( )2.数制转换:(10100101)2=( )10,(70)10=( )2. -
文哑帮备:[答案] (10100101)2=(165)10 (70)10=(1000110)2

自流井区19427404975: 求数制转换的详细解答过程?比如说:237.625转化为二、八、十六进制分别是?详解 -
文哑帮备:[答案] 先转换成二进制么,237÷2=118余1118÷2=59余059÷2=29余129÷2=14余114÷2=7余07÷2=3余13÷2=1余1余1然后余数从后到前加起来11101101写成八位就简单了,三个一组就是八位11 101 101 就是355十六位就是四个一...

自流井区19427404975: (101)数制转换 -
文哑帮备:[答案] 101是可以看成二进制的数,如果转换成10进制数,就是个为1=1,第二位0=0,第三位1=8,合计就是9

自流井区19427404975: 数句结构中数制转换问题 [问题描述] 将十进制数N和其它d进制数的相互转换是计算机实现计算的基本问题对于键盘输入的任意一个非负的十进制整数,打印... -
文哑帮备:[答案] 进制转换,讲十进制转换为任意进制;n是十进制数,r是转为的进制;r不超过16; #include int main() { int n,r,i; while(scanf("%d%d",&n,&r)!=EOF) { int a[100000]; i=-1; if(n<0) {printf("-"); n*=-1;} while(n) {a[++i]=n%r; n/=r;} for(i;i>=0;i--) {if(a...

自流井区19427404975: 如何进行数制转换?
文哑帮备: 10->2:整数除2取余,小数乘2取整(均从小数点开始). 例: 115.625 10->16:10->2->16 2/16->10:按公式计算累加和(按10进制运算规则 BCD码用4位2#表示1位10#,逢十进一,4位组中各位的权=8,4,2,1

自流井区19427404975: 关于计算机数制间转换的问题.八进制数375转化为十进制数是多少? -
文哑帮备:[答案] 253 计算过程如下: 3*8*8+7*8+5=253

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网