1、问题
在学习《深入理解计算机系统》第二版第二章整数运算中的除以2的幂小节时,发现机器数位表示转换为无符号数使用了下面这一公式:
这一公式其实就是二进制转换为10进制的数学符号表示,我疑惑的点在于表示形式为什么是这样的。回想当年信息技术课上老师也没详细解释原理,只是把他当成方法,一种经验,类似于1+1=2;隐隐中感觉有不合理之处,又说不出问题详细所在,总感觉缺少了部分逻辑。
2、思考
2.1 数码、数位、基数、位权?:进位计数制
2.2 发现问题
以上基数、位权、实例的推导过程都站在10进制的角度进行,二进制中只有'0','1'两个符号,而上图二进制转换位10进制中基数为2,位权中的幂也是10进制数表示。
现代人类生活、基础教育都是使用10进制数,也可以说人的默认设置就是10进制。之所以对转换公式误解是误将位权2^i次方当作二级制表示,实际上在这一步就已经将二进制转换为10进制。
当然此处还有一个隐含的逻辑,数有多种进制表示:二级制、八进制、10进制、16进制,也有多种数学符号:阿拉伯的12345.......,汉字的一、二、三、四等,以及埃及的Ⅰ、Ⅱ、Ⅲ等,无论用什么符号、什么形式,所表示的数,数量是一致的。