姜咏江
Altera杯全国研究生电子设计大赛有一道简单的“将-37表示成三进制补码”的题。有判卷的老师一上来就提出答案的异议,认为1122(3)的结果不对,因为“除去最高符号位”之外,122(3)=1×32+2×31+2×30=17。这反映出我们长期进行的数字电路设计的理论教学存在问题。
要说“将-37表示成三进制补码”的提法有漏洞,那就是没有提出“用几位来表示”,不然会出现多种不同的表达形式。例如,1122(3),21122(3),221122(3),2221122(3),……,这些表示的值都是-37。
4位三进制的无符号整数是0000(3)~2222(3)这81个数,如果用它们表示有符号整数,那么范围是-1111(3)~+1111(3),即十进制的-40~+40。判断4位三进制补码表示值的正负,不能看最高位是“0”还是“1”,而要看无符号整数是否大于1111(3),是,则为负数。因此37的最少位三进制表示是1101(3),依据“求反加一”(为什么),得-37的4位三进制表示是1122(3)。
现在我们的数字电路是用二进制器件,如果有一天人们搞出了三进制器件或更高进制的器件,搞清楚如何只用有限位数码来表示正负数的原理,不是非常有用吗?
2010-9-2
https://blog.sciencenet.cn/blog-340399-358538.html
上一篇:
论文抄袭问题不大科技忽悠贻害无穷下一篇:
要求跨学科研究之日就是新学科诞生之时