问一个很简单的问题……关于2进制……
pascal吧
全部回复
仅看楼主
level 4
我做了一个输入10进制数输出2进制数的程序,构思的时候是想用2个循环来实现,意外的是修改调试过程中不小心把其中一个循环弄失效了,结果就是一个循环实现了上述目的,但是!我看不懂!![喷](看不懂自己的程序 /打脸 )我看不懂那一循环是如何实现该转化的?数据跟踪我已经试过了,还是看不懂……求高手解释……
2014年04月27日 09点04分 1
level 4
现在赶着去学校,暂时用图片表示,将就着先看吧……
2014年04月27日 09点04分 2
这个将a:=b上面的直到j;=1去掉对运算结果都没影响
2014年04月29日 05点04分
回复 abslime :谢谢
2014年04月29日 23点04分
回复 机智少年梁逸峰 :不用
2014年04月30日 05点04分
level 13
[喷]我也看不懂
附上代码
var n:longint;
begin
readln(n);
if n=0 then writeln(0)
else writeln(binstr(n,trunc(ln(n)/ln(2))+1));
end.
2014年04月27日 11点04分 3
大神,binstr好像是非数学库的基本函数,在noip可不可以直接用呢
2014年04月29日 05点04分
level 13
这不肯定暴吗。。。用integer来存储二进制你肯定在逗我。。。
要转二进制至少也是string或者数组啊。。。
2014年04月30日 09点04分 4
啊?貌似没问题啊……
2014年04月30日 12点04分
level 7
for i := 1 to trunc(ln(num)/ln(2))+1 do write(num shr (i-1) and 1); writeln; 一行
2014年04月30日 12点04分 5
level 12
好久木有钻编程题 都不会写了[汗][汗]
2014年04月30日 14点04分 6
level 7
你直接在前面用个短除法就可以了
2014年04月30日 15点04分 7
用的就是短除……
2014年05月01日 02点05分
level 11
同看不懂
2014年04月30日 16点04分 8
1