早教吧 育儿知识 作业答案 考试题库 百科 知识分享

程序改错下列程序的功能是:将二进制数字字符串转换成十进制数字字符串(转换结果小数点后保持3位)其基本算法是:将每一位二进制数字乘以其相应的权,并将乘积相加.二进制数字的权

题目详情
程序改错 下列程序的功能是:将二进制数字字符串转换成十进制数字字符串(转换结果小数点后保持3位)
其基本算法是:将每一位二进制数字乘以其相应的权,并将乘积相加.二进制数字的权为:以小数点为界,整数部分从右向左依次为20、21、22、……;小数部分从左向右依次为2-1、2-2、2-3、…….要求:①将下列程序输入到项目的程序文件PCODE中,并对其中的2条错误语句进行修改;②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目.
Clear
Cstr="1000.111"
n=AT('.',cstr)
cstr=IIF(n=0,cstr+'.',cstr)
c1=SUBSTR(cstr,1,n-1)
c2=SUBSTR(cstr,n+1)
m1=0
m2=0
m=0
FOR i=0 TO LEN(c1)
m1=m1+VAL(LEFT(RIGHT(c1,i),1))*2**(i-1)
ENDFOR
FOR j=1 TO LEN(c2)
m2=m2+VAL(SUBSTR(c2,j,1))*2**(j)
ENDFOR
m=m1+m2
'二进制数'+cstr+'十进制表示为:'+VAL(m,10,3)
▼优质解答
答案和解析
//如下代码即可把12341转换成字符串"12341"char a[10];sprintf(a,"%d",12341);二进制稍麻烦一点char a[]="100100111";int r=0;for(int i=0;a[i]!='\0';++i)r = r<<1 + a[i] - '0';r就是最终要的字符串"10010...