首页 文章

有符号和无符号整数?

提问于
浏览
0

有人可以向我解释这两个因为我必须在我的任务中给出解释 .

我知道正常的整数当然是什么,并使用以下内容来描述它:

“整数是一个整数,可以是正数,负数和零但不能有小数点 . ”

但我只是不确定签名和未签名 .

谢谢

3 回答

  • 0

    在大多数语言中,当您声明一个整数时,您将声明一个有符号整数 . 如果要声明无符号整数,则必须专门告知编译器 . 例如在c#中

    int a; // Signed int
    uint b; // Unsigned int.
    

    不同之处在于,在signed int中,其中一个位用于指示数字是正数还是负数 . 在和unsigned int中,该位用于保存值 . 结果是你可以在unsigned in中保存两倍绝对值,就像在signed int中一样 . 或者更简单地说,C#整数的范围是-2,147,483,648到2,147,483,647,而uint的范围是0到4,294,967,295 . 两种数据类型都是32位数据类型 .

  • -1

    有符号和无符号整数之间的区别在于需要整数的一个字节来保存符号 .

    例如,使用两个二进制数字,您可以具有以下内容:

    Base 2   Base 10
    00       0
    01       1
    10       2
    11       3
    

    但是,如果我们取第一个数字表示负数(0)或正数(1)

    Base 2   Base 10
    01       -1
    00       0
    10       1
    11       2
    

    或者,如果我们想要1为negatiave,0为正:

    Base 2   Base 10
    01       1
    00       0
    10       -1
    11       -2
    

    如需进一步阅读,请查看Two's compliment上的Wikepedia文章

  • 0

    通常当你说int时,它是signed int . (signed)int的范围是-32768 - 32767但是unsigned int的范围是0 - 65535

    无符号变量int的类型可以包含零和正数,但有符号的int包含负数,零或正数 .

相关问题