为什么计算机中表示正数符号位是0,负数符号位是1
作为一个开发人员,我们都知道,在java中, 1表示true,0表示false 。然后很顺理成章的认为,对于二进制的符号位,如果用“1表示正数,0表示负数”,毫无破绽,简直完美。但是实际上是 0表示正数,1表示负数
百思不得其姐,然后今天翻看二进制的相关博客的时候,才知道原因
当代绝大多数计算机表示浮点数都是采用IEEE标准的,这里简化一下,我们只关心符号位,那么对于一个数,计算机其实是以下面的式子来描述它的:**(-1)^s × X **,就是-1的s次幂乘以X,这里的指数s就是用来决定数值X是正数还是负数,显而易见,当s=0时,则X为正数(因为任何数的0次幂都是1),当s=1时,则X为负数(因为-1的1次幂为-1),至此我们就理解了为什么符号位为0时表示正数,为1时表示负数啦,而且这辈子都不会记错了吧!