??大学时上计算机组成原理课程的时候上到计算机如何存储数据的相关知识时,因为计算机世界里面所有的数据归根结底都是由0和1来存储的那么如何表达数值的正負呢?只知道书本上说是有一个符号位当该符号位为0时,表示的是正数为1时表示负数。我那时没搞懂为什么这样规定我觉得1么,代表正数挺合理的那么0就自然表示负数咯,所以不解只能死记硬背:0正1负。
??我个人对于不知道前因后果而要死记硬背的东西是很难記住的黑格尔在《法哲学原理》里说过:存在即合理,我也觉得一个东西的存在必然是有它的原因的只有知道为什么这样、找到根源,我们才能更好地理解它现在我来揭示在计算机表示数值正负时,为什么0为正1为负。
??当代绝大多数计算机表示浮点数都是采用IEEE标准的这里简化一下,我们只关心符号位那么对于一个数,计算机其实是以下面的式子来描述它的:(-1)s×X这里的指数s就是用来决定数值X0昰正数还是负数,为什么数,显而易见当s=0时,则X为正数(因为任何数的0次幂都是1)当s=1时,则X为负数(因为-1的1次幂为-1)至此我们就理解叻为什么符号位为0时表示正数,为1时表示负数啦而且这辈子都不会记错了吧!