广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    什么是有符号数和无符号数

    来源:网络收集  点击:  时间:2024-05-22
    【导读】:

    有符号数就是用最高位表示符号(正或负),其余位表示数值大小,无符号数则所有位都用于表示数的大小

    有符号数和无符号数是针对二进制来讲的。

    有符号数用最高位作为符号位,“0”代表“+”,“1”代表“-”;其余数位用作数值位,代表数值。

    比如:

    0011 表示 +3;1011 表示 -3。无符号数全部二进制均代表数值,没有符号位。即第一个0或1不表示正负。

    比如:

    0011 表示 3;1011 表示 11。C支持所有整形数据类型的有符号数和无符号数运算。尽管C标准并没有指定某种有符号数的表示,但是几乎所有的机器都使用二进制补码。

    通常,大多数数字默认都使有符号的,C也允许无符号数和有符号数之间的转换,当执行一个运算时,如果它的一个运算数是有符号的而另一个是无符号的,那么C会隐含地将有符号参数强制转换为无符号数,并假设这两个数都是非负的,来执行这个运算。

    扩展资料:

    一个有符号的数据类型的最小值一般 是这样计算的:

    有符号的数据类型的最大值的计算方法完全和无符号一样,只不过它少了一个最高位(见第3点)。但在负值

    范围内,数值的计算方法不能直接使用1* 26 + 1* 25 的公式进行转换。

    在计算机中,负数除为最高位为1以外,还采用补码形式进行表达。所以在计算其值前,需要对补码进行还原。 这里,先直观地看一眼补码的形式:

    在10进制中:1 表示正1,而加上负号:-1 表示和1相对的负值。

    那么,我们会很容易认为在2进制中(1个字节): 0000 0001 表示正1,则高位为1后:1000 0001应该表示-1。

    计算机中带有符号数用补码表示的优点:

    1、负数的补码与对应正数的补码之间的转换可以用同一种方法——求补运算完成,可以简化硬件;

    2、可将减法变为加法,省去减法器;

    3、无符号数及带符号数的加法运算可以用同一电路完成。

    可得出一种心算求补的方法——从最低位开始至找到的第一个1均不变,符号位不变,这之间的各位“求反”(该方法仅用于做题)

    参考资料:百度百科——无符号数百度百科——有符号数

    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_824654.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-05 18:40:45  耗时:0.037
    0.0373s