• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

什么是进位和溢出

15681哈哈哈 2018-09-09 浏览量:5604
什么是进位和溢出
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 对于整数来说溢出就是超出类型所能表示的范围。比如对于无符号整数0 - 1就会溢出。而对于16位带符号整数-32768 - 1会溢出。

    这里存在一个问题就是一般CPU不会区分你的运算是否带符号,因为不管带不带符号,运算方法都是一样的。也就是说两种溢出都需要考虑,为了区分,无符号整型的溢出就被称作进位了。

    进位判断方法:加减时最高位产生进位或借位,代表结果超出无符号数的范围,单字节就是0~255;

    溢出判断方法:加减时最高位和次高位中有且仅有一个产生进位或借位,代表结果超出有符号数的范围,单字节就是-128~127;
    • 发布于 2018-10-08
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:19
  • 进位就是到256就进位,溢出就是烦512就是溢出了
    • 发布于2018-09-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 进位:就是表示一个位的状态已经不能表示该数据的实际值,必须使用两个或者多个位进行表示,这个时候就会有进位现象产生。

    溢出:就是表示目前数据的实际值所需要的位已经超出现有的位,现有的位表示出的数据是错误的。

    • 发布于2018-09-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 进位其实和小学加法中的进位是一个道理,就是对一位对应相加后,超过了当前位最大可表示数,则当前位的值置为和减去进制的余数,并在更高位加1。

    溢出则和数据总的位数有关,比如一个系统是16位系统,如果两个16位数运算后需要在17位上进位,这时系统已经没有资源表示了,这时就发生了溢出。

    • 发布于2018-09-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 对于无符号数来说不存在溢出的问题它的进位就相当于有符号数中的溢出
    而对有符号数来说不存在进位的问题
    一个字节(8位) 的数有256个 (2的8次方)
    一个字(16位) 的数有65536个 (2的16次方)
    8个二进制位能够表达的无符号数范围是:0 ~ 255
    16位表达的无符号数范围是:0 ~ 65535
    对于无符号数来说不存在溢出的问题它的进位就相当于有符号数中的溢出.
    进位表示最高位有没有向上形成进位,或向个形成借位,如果有则进位标志CF为进/借位数,但结果没错。
        进/借位数要看 十六进制、二进制,进/借的是十六进制、二进制的最高位处理器内部以补码表示有符号数
    8个二进制位能够表达的有符号数范围是:+127 ~ -128
    16位表达的有符号数范围是:+32767 ~ -32768
        如果运算结果超出了这个范围,就是产生了溢出有溢出,说明有符号数的运算结果不正确
        溢出是指结束超出数据所表示的范围,通俗地说是装不下了,比如,两个带符号的字节数127和2相加,结果为-1,因为带符号的字节数最大正数为127所以超过范围,溢出标志位OF为1说明出错了。

    • 发布于2018-09-09
    • 举报
    • 评论 1
    • 0
    • 0
xdsnet 回复了 jacktang :无论如何都存在溢出的,比如两个16bit无符号数 FFFFH + F000H,你用16bit去保存,肯定也是溢出了的。 回复

  • 假设你上有一个100ml和一个10ml的量筒。

    用来量出50ml的水,先用10ml的量筒量出一杯,把这10ml的水倒到100ml量筒里,这个动作叫进位:10ml的量筒满了,倒到更大的量筒中。

    但是用来量200ml水,尽管可以用100ml的水量出一半,但是其他的100ml没地方装了,这叫溢出:实际的数值或大小大于载具的容量。

    • 发布于2018-09-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 打个比方就是比如算盘,满5则加1,超过12列后就溢出
    • 发布于2018-09-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 两个字节表示16位整数,进位就是0xff,再加1,高位进一,变成0x0100,溢出意思是他最大只有0xffff,再加一,变成0x0000,进位丢失了保存不下,溢出了
    • 发布于2018-09-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 比如十进制的逢十进一 溢出就是超过最大位 比如8位数据 超过255就溢出了
    • 发布于2018-09-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 假设一个数据是8位,第一位是零。首先地位加一,然后第一位再加一,第二位变为一这是进位。当8位数据全是一,第一位再加一时,这时就是溢出
    • 发布于2018-09-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 数据溢出就是不能超过数据位的最大值 比如int类型不能超过65535
    • 发布于2018-09-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 两数运算的结果若没有超出字长的表示范围,则由此产生的进位是进位;

    若两数的运算结果超出了字长的表示范围(即结果不合理),则称为溢出。

    • 发布于2018-09-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个用计数器最好理解8位计算器是256个数值,16位就是65535,数据都是二进制的,一个个累加,逢2进1,像左进一位,当超过计数,寄存器满了就会溢出,丢掉最前面的数值!
    • 发布于2018-09-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 拿计数器来说

    你计数到1001 1111之后  BIT5为1  就是进位 变为 1010 0000

    如果你继续计数到 1111 1111之后还要计数下去  就会产生溢出

    • 发布于2018-09-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 每一数位上的数等于基数(10进制的基数就是10)时,该位置0,同时前一位加1,就是进位

    溢出是指数据的位数超过了该存储空间能够容纳的位数上限,比如用一个unsigned char去存储257这个数,或者数组个数上限是10对第11个元素进行操作


    • 发布于2018-09-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 溢出是位宽不够的进位,进位是两数相加,当前位不能表示其大小,送入1位到更高位
    • 发布于2018-09-24
    • 举报
    • 评论 0
    • 0
    • 0

  • 进位就是数据在你的寄存器中对数据满了一个单位进位,溢出是你的数据类型容量不够,超出了类型的数据范围
    • 发布于2018-09-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 进位就是低位的数据满了向高位进1,溢出就是计数器计数值超出最大计数值。
    • 发布于2018-09-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 进位就是你的数据满了向上进位,而溢出是你的数据超过了最大计数值
    • 发布于2018-10-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 仅为就是当前存储的数据到达了最大值在增加的话需要向更高为的存储空间写入数据。溢出就是超出了存储空间所能存储的最大值。
    • 发布于2018-10-17
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

什么是进位和溢出