常德市第二中医院:C语言作业

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 16:37:50
三、设计程序,可将输入的一个任意位二进制数字字串,转换为十进制整数、或十进制实数、或十六进制表示的字符串。
(源程序名:LJOB3.C 演示程序:BINSTRTONUM. EXE)
要求:
1、输入的二进制数字字串可带有符号 + 或-,也可不带,程序均能识别处理;
2、输入的二进制数字字串可带小数部分或不带小数部分,程序均能识别和处理;
3、在main函数中设计并利用字符菜单进行转换类型的选择,转换类型包括:十进制整数、十进制实数、十六进制字符串。该程序一次运行可根据选择完成一项或多项操作,通过选择菜单的退出(或结束)项来结束程序的运行;
4、输入的二进制串中若出现无效字符则显示 Invalid string!,并请求重新输入;
5、各种转换处理、无效字符的识别处理用自定义函数实现。
算法提示:
1) 若二进制数字字串已输入到字符数组b中,且只有整数部分,根据二进制位权关系,可利用下列循环将二进制数字字串转换为对应的值:
for(n=0 ; b[i]=='0'||b[i]=='1'; i++) n=n*2+b[i]-'0';
其中i的初值根据二进制数字字串是否有符号字符赋1或赋0 。
2) 转换为十六进制字串时,需要事先划分四位组,在四位组内按权相加得出对应值。

也许那里已是一片草地,
锄犁和钉耙来来往往,
家乡,花园哈哈,老屋和栗树,
一无所有,只剩下我的梦。
有时候,当一只小鸟鸣啭,

分都没有,可能看完你题目的人都没几个。