有符号类型和无符号类型

转载-----------------------------------------

负数在计算机中如何表示呢?
1、是否需要有正负。

如果这个量不会有负值,那么我们可以使用无正负的类型。

分正负的类型,称为有符号类型;无正负的类型(只有正值),称为无符号类型。

2、使用二制数中的最高位表示正负。

(第一位为最高位)

单字节数: 1111 1111

双字节数: 1111 1111 1111 1111

四字节数: 1111 1111 1111 1111 1111 1111 1111 1111

当一个数是无符号类型时,那么其最高位的1或0,和其它位一样,用来表示该数的大小。

当一个数是无符号类型时,最高数称为“符号位”。为1时,表示该数为负值,为0时表示为正值。

3、无符号类型和有符号类型的范围区别。

无符号类型中,所有的位都用于直接表示该值的大小。我们举一个字节的数值对比:

无符号类型: 1111 1111 值:255 1* 27 + 1* 26 + 1* 25 + 1* 24 + 1* 23 + 1* 22 + 1* 21 + 1* 20

有符号类型: 0111 1111 值:127 1* 26 + 1* 25 + 1* 24 + 1* 23 + 1* 22 + 1* 21 + 1* 20

同样是一个字节,无符号类型的最大值是255,而有符号类型的最大值是127。原因是有符号类型中的最高位被挪去表示符号了。

有符号类型的长处是它可以表示负数。虽然它的在最大值缩水了,却在负值的方向出现了伸展。我们仍用一个字节的数值对比:

无符号类型: 0 —————————–255

有符号类型: -128 ——— 0 ———- 127

二者能表达的数值的个数都是256个。无符号类型表达的是 0~255 这256个数,有符号类型表达的是 -128 ~ 127这256个数。

有符号类型的负数使用补码表示。

  1. 原码、反码、补码

有 int 类型的数,值为5,那么,我们知道它在计算机中表示为:

00000000 00000000 00000000 00000101

如果是 -5,在计算机中如何表示? 负数以补码表达。

(1)原码:一个整数,按照绝对值转换成的二进制数,称为原码。

比如 00000000 00000000 00000000 00000101 是5和-5 的原码。

(2)反码:原码按位取反,就是反码。

取反操作指:1变0; 0变1

00000101每一位取反,得11111010。

(3)补码:补码=反码+1。

00000101 的反码是:11111010。

补码 = 11111010 + 1 = 11111011

-5在计算机中表达为:11111011。转换为十六进制:0xFB。

我们来看int型整数-1在计算机中如何表示:

1、先得原码: 00000001

2、得反码: 11111110

3、得补码: 11111111

-1在计算机里用二进制表达就是全1。16进制为:0xFF。

  • 7
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 最常见的符号类型有 char、int、float 和 double,其中 char 的最小值为 -128,最大值为 127;int 的最小值为 -2147483648,最大值为 2147483647;float 的最小值为 1.17549e-38,最大值为 3.40282e+38;double 的最小值为 2.22507e-308,最大值为 1.79769e+308。无符号类型有 unsigned char、unsigned int、unsigned long 和 unsigned long long,其中 unsigned char 的最小值为 0,最大值为 255;unsigned int 的最小值为 0,最大值为 4294967295;unsigned long 的最小值为 0,最大值为 18446744073709551615;unsigned long long 的最小值为 0,最大值为 18446744073709551615。 ### 回答2: 数据类型分为有符号类型无符号类型。 有符号类型是指可以表示正数、负数和零的数据类型,它的范围是从最小值到最大值。常见的有符号类型包括: 1. char类型:表示字符的数据类型,范围为-128到127。 2. short类型:表示短整的数据类型,范围为-32768到32767。 3. int类型:表示整的数据类型,范围为-2147483648到2147483647。 4. long类型:表示长整的数据类型,范围为-9223372036854775808到9223372036854775807。 5. float类型:表示单精度浮点的数据类型,范围为-3.4E38到3.4E38。 6. double类型:表示双精度浮点的数据类型,范围为-1.7E308到1.7E308。 无符号类型是指只可以表示正数和零的数据类型,它的范围是从0到最大值。常见的无符号类型包括: 1. unsigned char类型:表示无符号字符的数据类型,范围为0到255。 2. unsigned short类型:表示无符号短整的数据类型,范围为0到65535。 3. unsigned int类型:表示无符号的数据类型,范围为0到4294967295。 4. unsigned long类型:表示无符号长整的数据类型,范围为0到18446744073709551615。 需要注意的是,不同的编程语言和操作系统可能对数据类型的表示范围有所不同,在使用时应根据具体情况进行判断和选择。 ### 回答3: 数据类型是计算机中用于表示数据的一种方法。在计算机中,数据类型可分为有符号类型无符号类型。 有符号类型是指可以表示正数、负数和零的数据类型。它的范围从最小负数到最大正数。以下是常见有符号类型及其最小最大范围的示例: 1. char类型是用于表示字符的有符号整数类型,占用1个字节。它的范围从-128到127。 2. short类型是用于表示较小整数的有符号整数类型,占用2个字节。它的范围从-32768到32767。 3. int类型是用于表示整数的有符号整数类型,占用4个字节。它的范围从-2147483648到2147483647。 4. long类型是用于表示大整数的有符号整数类型,占用8个字节。它的范围从-9223372036854775808到9223372036854775807。 无符号类型是指只能表示正数和零的数据类型。它的范围从零到最大正数。以下是常见无符号类型及其最小最大范围的示例: 1. unsigned char类型是用于表示无符号字符的类型,占用1个字节。它的范围从0到255。 2. unsigned short类型是用于表示较小无符号整数的类型,占用2个字节。它的范围从0到65535。 3. unsigned int类型是用于表示无符号整数的类型,占用4个字节。它的范围从0到4294967295。 4. unsigned long类型是用于表示大无符号整数的类型,占用8个字节。它的范围从0到18446744073709551615。 需要注意的是,不同的计算机系统和编程语言可能会有不同的实现和范围。因此,上述范围仅为常见情况,并不适用于所有情况。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值