五度的博客

看远方的梧桐叶~ 思恋从前的我!

如何理解有符号数和无符号数!

小生也是前段时间 才开始学习汇编的,如果描述的有错误。还请海涵哈!

 

   之前我的这篇文件介绍的一种方法:http://blog.jsx8.com/huibian/25.html ,这种方法是正确的,但是他不是一句完整的话!

   这个怎么说呢? 也就是说如果只是单纯的通过八位数的最高位的数字来判断正负,其实是错的,但是为什么说他又是对的呢?请听我慢慢道来!

  首先我先给大家举一个例子吧,

  1000 0001  和1000 0001

咱们吧第一个看成有符号位,也就是第八位1是负数,  然后再吧第二个看成无符号位,也就是他没有符号位了。

 

那么第一个的运算结果就是:-1111110  +1 =-(126+1)=-127 (这里为什么要加1,这是因为机器要补码,什么是补码,请继续在我的博客搜索!),也就是说如果吧第一个看成有符号位,那么正在表达数值的就是后面七位数! 那么有符号位的二进制所能表达的范围就是:-128~127。

 

我们继续看第二个:他是没有符号位的! 那么我就按照正常的来算即可。10000001=129    也就是没有符号位,那么我们就要吧八个数全部算进去,而有符号位的符号位不能加进去算!  无符号为的所能表达范围为:0~255

 

有符号和没有符号所能表达的范围都是一样的,都是256个值,但是有符号能从负128到正127 ,没有符号则不能表达负数,

 

下一篇介绍如何让机器了解我们输入的是正还是负

 

本文章转载自五度博客:http://blog.jsx8.com

posted on 2012-02-29 11:26  五度  阅读(854)  评论(0编辑  收藏  举报

导航