机电工程学院机器数补码全字长数说
机电工程学院机器数补码全字长数说
2022年9月22日下午15:50至17:20,机电工程学院在6教201举行了《机器数补码全字长数说》的学术报告,报告人周良泽教授。
周良泽,1957年生,1982年1月武汉大学毕业,1996年晋升为教授,从事数学、运筹学、计算机科学交叉学科。在运筹学领域原创有“指派问题周良泽算法”、“作战毁伤过程还原模拟法”、在计算机科学基础研究领域创立了“机器数补码全字长数位说”。大校军衔、二等功荣立者。现为广州华立学院机电工程学院院长。
关于机器数补码,以[中]清华大学教材《计算机组成原理》(国家精品课程主讲教材,王诚等)和[美]斯坦福大学原版教材《Computer Organization and Design》(作者David A.Patterson与John L.Hennessy均为美国国家工程院院士、美国国家科学院院士)为代表的国内外文献如此阐述:“在补码表示法中,机器数的最高一位是符号位,0代表正号,1代表负号”;“补码表示的二个数在进行加法运算时,可以把符号位与数值位同等对待”;“符号位能与有效数值位一起参加运算”。以此形成了世界上流行70多年的“机器数补码首位符号说”。
这给人们带来很多的困惑。例如:一个正的机器数补码与一个负的机器数补码相加,符号位上“0+1=1” 到底是什么意思?是说“一个正号的表示”加“一个负号的表示”等于“一个负号的表示”?数学没有这样的结论。二个机器数补码相加,其和的最高数位向符号位进位“1”是什么意思?对于8位字长的机器而言,这个从最高数位上被进位过来的“1”实质上是一个数2^7,而进到符号位后变为“1”,则成了一个负号的表示,难道2^7是一个负号的表示吗?此外,机器数补码首位符号位“以0表示正号,1表示负号”,这是必须的,还是可以有别的选择?凡此种种,无可释然。若有学生课堂上如此提问,教师何以言对?
该理论对机器数补码全字长各位定义了位权,提出了“首位负权记数制”及新的机器数补码数据模型。在这个新的模型下,给出了机器数补码的加法法则,论证了在封闭运算条件下机器数补码加法的等效加法运算法则。这个等效加法运算定理是:设x,y是二个机器数补码,对它们实施补码加法运算C(x+y)。视补码x,y为二个数学上的二进制数,对它们实施数学上的加法运算M(x+y)。只要补码加法C(x+y)是封闭运算,这个数学上的加法运算M(x+y)就是补码加法C(x+y)的等效运算。相对补码加法运算C(x+y),等效运算M(x+y)的运算器在硬件结构上要简单得多。机器做加法时,不是使用补码加法法则C(x+y),而是使用等效运算法则M(x+y)。周良泽教授的创新成果,否定了“机器数补码首位符号说”,建立了新的“机器数补码全字长数位说”。“机器数补码首位符号说”中种种无可释然的困惑,在“机器数补码全字长数位说”里不复存在。该理论建立在严谨的数学论证之上。
以前,我们在学习机器数补码这一部分内容时,对“首位是符号位,符号位上的0、1可以像数一样的运算”感觉困惑。聆听了这个学术报告后,才明白“机器数补码首位符号说”从根本上错了,那是没法理解清楚的。“机器数补码全字长数位说”这一理论让我们对补码的奥密豁然开朗,“机器数补码首位符号说”中的种种困惑烟消云散。
用户登录