PASCAL中一道题目求大牛解答……

对于十进制整数N,试求其-2进制表示。例如,因为1*1+1*-2+1*4+0*-8+1*16+1*-32=-13,所以(-13)_10=(110111)_-2。最好说一下... 对于十进制整数N,试求其-2进制表示。
例如,因为 1*1 + 1*-2 + 1*4 + 0*-8 +1*16 + 1*-32 = -13 ,所以(-13)_10 = (110111)_-2。
最好说一下思路,然后把负数的短除讲解一下……初学者请原谅……
展开
 我来答
laoshuainig
2010-08-14 · TA获得超过924个赞
知道小有建树答主
回答量:217
采纳率:0%
帮助的人:0
展开全部
负数的短除其实和正数的短除是一样的。
区别只在于,负数短除后可能出现余为负的情况,而进制数中数位是不为负的。
解决这个,其实很简单,只要把它变正就好,例子如下。

如果要求-7的-2进制数,那么第一步就要用-7来除以-2,商是3,余数是-1。
那么余数为负,不符题意,我们就试着改变商,试余数变正,实际上只要把商+1即可,因为余数绝对值恒小于除数的绝对值。
也就是说,现在-7除以-2,商变成了4,余数变成了1,以此类推,-7的-2进制数就可以推出是 1001 。

对于-13也可这样转换。

总之一句话:保证余数非负!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式