做网站投资要多少钱,大良陈村网站建设,中文网站建设制作,江门网站制作专业原文章#xff1a;知乎
原码和二进制类似#xff0c;不过它有符号位。正数符号位为0#xff0c;负数为1 。
例#xff1a;40000 0100 #xff0c;-41000 0100
原码是人脑最容易理解和计算的表示方式。
但是这在计算机中计算就出了问题#xff0c;这两个#xff08;4…原文章知乎
原码和二进制类似不过它有符号位。正数符号位为0负数为1 。
例40000 0100 -41000 0100
原码是人脑最容易理解和计算的表示方式。
但是这在计算机中计算就出了问题这两个4和-4的原码相加为1000 1000-8这个结果并不对。
于是反码就出现了
4反0000 0100正数的反码和原码一样
-4反1111 1011负数的反码是将原码中除符号位以外每一位取反
于是4-40000 01004反1111 1011-4反1111 11110反
但是这还有一个问题0怎么办0不是正数也不是负数0的反码怎么办这就用到补码了。
于是补码的出现解决了0的符号问题以及0的两个编码问题
1-1 1 (-1) [0000 0001]原 [1000 0001]原 [0000 0001]补 [1111 1111]补 [1 0000 0000]补[0000 0000]补[0000 0000]原注意进位1不在计算机字长里。
这样0用[0000 0000]表示而以前出现问题的-0则不存在了。而且可以用[1000 0000]表示-128-128的由来如下
(-1) (-127) [1000 0001]原 [1111 1111]原 [1111 1111]补 [1000 0001]补 [1000 0000]补