数制转换 (3)10=( )2 (10)2=( )10 (11)2=( )10 (231)10=2 (101011)2=

gzkoei12022-10-04 11:39:541条回答

数制转换
(3)10=( )2 (10)2=( )10 (11)2=( )10 (231)10=2 (101011)2=10 (9)10=8 (16)10=( )16 (10)16=( )10要求要有步骤!

已提交,审核后显示!提交回复

共1条回复
ym19831021 共回答了21个问题 | 采纳率85.7%
(3)10=(0*1010+11)2=(11)2

(10)2=((0*2+1)*2+0)10=(2+0)10=(2)10

(11)2=((0*2+1)*2+1)10=(2+1)10=(3)10

(231)10=(((0*1010+10)*1010+11)*1010+1)2
=((10*1010+11)*1010+1)2
=((10100+11)*1010+1)2
=(10111*1010+1)2
=(11100110+1)2
=(11100111)2

(101011)2=((((((0*2+1)*2+0)*2+1)*2+0)*2+1)*2+1)10
=(((((1*2+0)*2+1)*2+0)*2+1)*2+1)10
=((((2*2+1)*2+0)*2+1)*2+1)10
=((((4+1)*2+0)*2+1)*2+1)10
=(((5*2+0)*2+1)*2+1)10
=(((10+0)*2+1)*2+1)10
=((10*2+1)*2+1)10
=((20+1)*2+1)10
=(21*2+1)10
=(42+1)10
=(43)10

(9)10=(1001)2=(001 001)2=(11)8

(16)10=((0*1010+1)*1010+110)2
=(1*1010+110)2
=(1010+110)2
=(10000)2
=(0001 0000)2
=(10)16

(10)16=((0*16+1)*16+0)10
=(1*16+0)10
=(16)10
1年前

相关推荐

数据结构课程设计 关于数制转换问题
数据结构课程设计 关于数制转换问题
任意给定一个M进制的数x ,请实现如下要求
1)求出此数x的10进制值(用MD表示)
2)实现对x向任意的一个非M进制的数的转换。
3)至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决)。
雨过留痕1311年前1
光在 共回答了16个问题 | 采纳率87.5%
//给你一个十进制转换为八进制的,其他类似的改一下就是了
#include"stdio.h"
#include"malloc.h"
#include"util.h"
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define OVERFLOW -2
#define OK 1
#define TRUE 1
#define FALSE 0
#define ERROR 0
typedef int SElemType;
typedef int Status;
typedef struct{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;
Status InitStack(SqStack & S)//栈的初始化
{
S.base = (SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType));
if(!S.base)
exit(OVERFLOW);
S.top = S.base;
S.stacksize = 100;
return OK;
}
/*Status GetTop(SqStack S,SElemType &e)
{
if(S.top==S.base)
return ERROR;
e = *(S.top-1);
printf("获得栈顶元素:");
printf("%3dn",e);
return OK;
}*/
Status Push(SqStack &S,SElemType e)
{
if(S.top-S.base>=S.stacksize)
{
S.base = (SElemType *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElemType));
if(!S.base)
exit(OVERFLOW);
S.top = S.base + S.stacksize;
S.stacksize+=STACKINCREMENT;
}
*S.top++=e;
return OK;
}
Status Pop(SqStack &S,SElemType &e)
{
//若栈不为空,则删除s的栈顶元素,用e返回其值
if(S.top==S.base)
return ERROR;
--S.top;
e = *S.top;
return OK;
}
bool StackEmpty(SqStack &S)
{
if(S.top=S.base)
return TRUE;
else
return FALSE;
}
void main()
{
SqStack S;
int N,t;
printf("请输入要转换的十进制数:");
scanf("%d",&N);
InitStack(S);
while(N)
{
Push(S,N%8);
N=N/8;
}
printf("转换后的八进制数:");
while(!StackEmpty(S))
{
Pop(S,t);
printf("%2d",t);
}
printf("n");
}