请解决两道题,用PASCAL语言做!

来源:百度知道 编辑:UC知道 时间:2024/05/17 23:46:44
输入一个整数(二位数),将它的二进制数输出来。输入两个整数,以竖式的方式计算它们的二进制数和

二进制数用取余的方法可以得到
至于以竖式的方式计算它们的二进制数和
那纯粹是语言的运用罢了
没什么算法可讲

dddddd

第一个问题的答案如下:
注意:要将结果反着写(如:输出结果为100111,则二进制应该为111001),笔者能力有限,也是初学者,实在很抱歉!!

program er;
var a,b:integer;
begin
readln(a);
repeat
b:=a mod 2;
a:=a div 2;
write(b);
until a=1;
write(a);
readln;
end.

十进制转二进制的原理为:

用2辗转相除至结果为1
将余数和最后的1从下向上倒序写 就是结果
例如302
302/2 = 151 余0
151/2 = 75 余1
75/2 = 37 余1
37/2 = 18 余1
18/2 = 9 余0
9/2 = 4 余1
4/2 = 2 余0
2/2 = 1 余0
故二进制为100101110