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

发布网友 发布时间:2022-04-22 08:52

我来回答

5个回答

热心网友 时间:2023-09-19 10:18

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

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

有符号数用最高位作为符号位,“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均不变,符号位不变,这之间的各位“求反”(该方法仅用于做题)

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

热心网友 时间:2023-09-19 10:19

无符号数(unsigned)是计算机编程中的一种数值资料型别。

有符号数(signed)可以表示任何类型规定范围内的数,而无符号数只能表示非负数(0及正数)。

有符号数能够表示负数的代价是能够表示的正数范围的缩小,因为其约一半的数值范围要用来表示负数(如8位有符号整数中,对应8位无符号整数表示128~255的部分被用于表示-127~-1)。无符号数可以利用其所占有的内存位来表示尽可能大的数。

拓展资料

例如,16位有符号整数可表示-32768~32767之间的任意整数,而16位无符号整数可表示0~65535之间的数。若将有符号数转换为二进制,则其数值类型允许的最左一位用于表示符号(1为负数,0为正数和0),但在无符号数中,最左一位与其右各位一样用于表示数值。

有符号数的编码方式,常用的是补码,另外还有原码和反码等。用不同二进制编码方式表示有符号数时,所得到的机器数可能不一样,但是真值是相同的。

热心网友 时间:2023-09-19 10:19

有符号数和无符号数是针对二进制来讲的。
有符号数用最高位作为符号位,“0”代表“+”,“1”代表“-”;其余数位用作数值位,代表数值。
比如:
0011 表示 +3;
1011 表示 -3。

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

C支持所有整形数据类型的有符号数和无符号数运算。尽管C标准并没有指定某种有符号数的表示,但是几乎所有的机器都使用二进制补码。通常,大多数数字默认都使有符号的,C也允许无符号数和有符号数之间的转换,当执行一个运算时,如果它的一个运算数是有符号的而另一个是无符号的,那么C会隐含地将有符号参数强制转换为无符号数,并假设这两个数都是非负的,来执行这个运算。

热心网友 时间:2023-09-19 10:20

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

热心网友 时间:2023-09-19 10:21

通俗来讲,就是
假如,int一样吧,
signed int【有符号整型】=-21474838~21474838
unsigned int【无符号整型】=0~4294967295
有没有发现,21474838 X2=4294967295
很明显,事实上int的范围是固定的,就是4294967295的长度,
所以有符号的就是从负数到正数,长度是4294967295。
无符号的就是0到4294967295,长度也是4294967295。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com