完整word版进制转换C语言的实现docxWord文档下载推荐.docx

上传人:b****5 文档编号:18711120 上传时间:2022-12-31 格式:DOCX 页数:16 大小:17.49KB
下载 相关 举报
完整word版进制转换C语言的实现docxWord文档下载推荐.docx_第1页
第1页 / 共16页
完整word版进制转换C语言的实现docxWord文档下载推荐.docx_第2页
第2页 / 共16页
完整word版进制转换C语言的实现docxWord文档下载推荐.docx_第3页
第3页 / 共16页
完整word版进制转换C语言的实现docxWord文档下载推荐.docx_第4页
第4页 / 共16页
完整word版进制转换C语言的实现docxWord文档下载推荐.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

完整word版进制转换C语言的实现docxWord文档下载推荐.docx

《完整word版进制转换C语言的实现docxWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《完整word版进制转换C语言的实现docxWord文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。

完整word版进制转换C语言的实现docxWord文档下载推荐.docx

9/2=4余1

4/2=2余0

2/2=1余0

所以302转换为2进制,结果:

100101110

十进制转八进制:

十进制数转换成八进制的方法和转换为二进制的方法类似,唯一变化:

除数由2变成8。

120/8=15余0

15/8=1余7

1/8=0余1

所以120转换为8进制,结果为:

170

十进制转十六进制:

十进制数转换成十六进制数的方法和转换为二进制的方法类似,唯一变化:

除数由2变成16。

不过,十六进制数:

(10~15)是用英文大写字母(A~F)表示。

123/16=7余11

所以123转换为16进制,结果为:

7B

二进制转十进制:

二进制数转换为十进制数按权展开,第0位的权值是2的0

次方,第1位的权值是2的1次方·

1010转换成十进制数:

第0位:

0*2^0=0

第1位:

1*2^1=2

第2位:

0*2^2=0

第3位:

1*2^3=8

所以转换为10进制数为:

0+2+0+8=10

二进制转八进制:

利用421,从后往前每三位一组,缺位除补0,然后按十进制

方法进行转换。

(11001)

001=1

011=3

然后将结果按从下往上顶顺序书写:

31

二进制转十六进制:

二进制和十六进制的互相转换比较重要。

不过这二者的转

换却不用计算;

利用8421,对于任意一个4位的二进制数,

都可以很快算出它对应的10进制值。

1111=8+4+2+1=15

又因十六制数:

10~15用大写字母A~F表示,所以15

F。

八制二制:

利用421;

从后往前每三位一,缺位用0填,然后

按十制方法行化;

1—>

001

3-011

然后我将果按从下往上的序写就是:

11001,那么

个11001就是八制31的二制形式。

八制十制:

八制就是逢

8

1,八制数采用

0~7

八数来表达

一个数;

八制数第

0位的

8的

0次方,第

1位

8的1次方,第2位8的2次方⋯⋯例如:

1507

7*8^0=7

0*8^1=0

5*8^2=320

1*8^3=512

所以换算成十进制:

7+0+320+512=839八进制转十六进制:

八进制转换成十六进制:

有两种方法:

一种是先将八进制转换成二进制,在将二进制转换成十六进制。

另一种方法是将八进制转换成十进制,在将十进制转换成十六进制。

十六进制转二进制:

上面已经提到二进制转换成十六进制的方法,记住8421,每一位的权值,所以十六进制转成二进制就是一段四位分别转成二进制。

F1111,D1101,A1010,50101十六进制转八进制:

十六进制转八进制也不能直接转换,需要将十六进制转换成十进制或者二进制,才能由十进制或者二进制转换成八进制。

十六进制转十进制:

16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。

十六进制数的第0位的权值为16的0次方,第1位的权

值为16的1次方,第2位的权值为16的2次方·

所以,在第N(N从0开始)位上,如果是是数X(X

大于等于0,并且X小于等于15,即:

F)表示的大小为X*

16的

N次方。

2AF5

5*16^0=5

F*16^1=240

A*16^3=2560

2*16^4=8192

所以转换成十进制数为:

10997.

栈:

头文件“stack.h”

#include<

stdio.h>

stdlib.h>

typedefenum{FALSE,TRUE}Bool;

typedefintElementType;

typedefstruct

{

inttop;

ElementType*elements;

intMaxSize;

}Stack;

voidInitStack(Stack*,intsz);

voidFreeStack(Stack*);

intPush(Stack*,ElementType);

ElementTypePop(Stack*);

ElementTypeGetTop(Stack*);

voidMakeEmepty(Stack*);

BoolIsEmpty(Stack*S);

BoolIsFull(Stack*S);

栈的关键操作

#include"

stack.h"

BoolIsEmpty(Stack*S)

/*判断栈是否为空

*/

return(Bool)(S->

top==-1);

}

创建栈空间,生成

一个空栈*/

S->

MaxSize=sz;

elements=(ElementType*)malloc(sizeof(ElementType)*S-

>

MaxSize);

top=-1;

intPush(Stack*S,ElementTypeitem)

/*进栈*/

if(!

IsFull(S))

elements[++(S->

top)]=item;

return0;

elsereturn-1;

ElementTypePop(Stack*S)

/*出栈*/

IsEmpty(S))

returnS->

elements[(S->

top)--];

else

printf("

stackisempty!

\n"

);

exit

(1);

关键程序:

/*十进制进制转换为其它

voidShiSl(longn,intt)

{inti=0,x;

charSl[100];

Stack*S=(Stack*)malloc(sizeof(Stack));

InitStack(S,100);

while(n>

0)

Push(S,n%t);

//关键句

n/=t;

while(!

{x=Pop(S);

if(x<

10)

Sl[i++]=x+'

0'

;

Sl[i++]=x-10+'

a'

Sl[i]='

\0'

其%d进制数为:

\n"

t);

puts(Sl);

voidmain()

{intt;

longshu;

请输要转化为几进:

scanf("

%d"

&

t);

请输入一个整数:

%ld"

shu);

ShiSl(shu,t);

/*其它进制转换为十进制*/

{charc,Y[100];

intn,i=0,k,j=0;

longT=0;

请输入该数的进制数:

scanf("

n);

请输该数位数:

k);

fflush(stdin);

for(i=0;

i<

k;

i++)

请输该数第%d:

++j);

c);

Y[i]=c;

Y[i]='

Y[i]!

='

if(Y[i]>

0&

&

Y[i]<

9)

T=T*n+Y[i];

'

A'

Y[i]<

Z'

T=T*n+Y[i]-'

z'

{printf("

输入有误!

"

exit

(1);

该数的十进制为:

T);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1