• Home
  • About
    • naget的小屋 photo

      naget的小屋

      love is important,life is important,code is important

    • Learn More
    • Email
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

无符号数和有符号数

29 Nov 2018

Reading time ~1 minute

人有十个手指头,习惯了逢十进一,于是十进制成了生活中的标准。程序的世界只有高低电平两种状态,更适合用二进制来表示,于是二进制成了程序世界的标准。 对与无符号数来说,我们更喜欢谈他们之间的转化,十进制是我们最习惯的进制,于是十进制转为R进制,R进制转为十进制变尤为重要。

无符号数

十进制——>R进制(整数部分小数部分分开转化,取到的第一个余或第一个整最接近小数点) 将十进制的217转化为二进制数(除基取余法) 在这里插入图片描述 所以转换结果为11011001

将十进制的0.6875转化为二进制数(乘基取整法) 在这里插入图片描述 转化结果为0.1011

所以217.6875转成二进制是多少你知道了吗?

R进制——>十进制(多项式代替法) 将二进制的10111.1101101转换为十进制 在这里插入图片描述

有符号数

对与有符号数来说,我们更喜欢谈并且才能谈这三个:原码、反码和补码。 原码:符号位用0表示正1表示负,数值位与真值一样 反码:符号位用0表示正1表示负,正数时数值位还是真值,负数时数值位是真值的按位取反 补码:符号位用0表示正1表示负,整数补码的数值位和真值相同,负数补码的数值位是真值的按位取反,在最低位加一

运算:原码运算复杂,首先需要判断是否同号,并且零的表示有两种。反码零的表示也有两种,运算时符号位与数值位一同进行运算。当符号位出现进位时,需要将进位加到运算结果的最低位,才能得到最后结果。而补码中0的表示只有一种,加法计算的规律也和无符号数一样。

小技巧: X的补码符号位连同数值位变反加一就可以得到-X的补码 对与反码、补码来说,扩展的书记为的值和原来的符号位的值是一样的



计算机基础 Share Tweet +1