全站数据
8 4 2 0 5 8 1

signed和无符号适用于哪些数据类型

控制工程网 | 简单学习,快乐成才!         
问题更新日期:2024-10-19 11:01:40

问题描述

signed和无符号适用于哪些数据类型,麻烦给回复
精选答案
最佳答案

1、表达数值范围的不同

signed表示有符号的,其第一个位表示正负,其余位表示大小,例如signedint大小区间为-128~127。

unsigned表示无符号的,所有位都为大小,没有正负,例如unsignedint大小区间为0~127。

2、类型的不同

signed类型的整数,只用了去除最高位,剩下的15位来进行编码的,而最高位只是用来做标记(sign),标记整数的正负,0表示正,1表示负。所以对于signed的整数,的存储范围是(-2^15to2^15-1),也就是-32768到+32767的整数。

而对于unsigned的整数,其16位全部用来编码,存储范围便是(0to2^16-1),即0到65535的非负整数。所以呢你可以声明inta=1,或者inta=-1,但是不可以声明unsigneda=-1。但是需要提到的一点是,不管整数的类型是signed还是unsigned,都用了16位来存储,也就是说16位全部用来存储数据。

3、表达的数值不同

signed类型的整数只用了除去最高位剩余的15为进行编码,最高位用来标记整数的正负,0表示正,1表示负。所以对signed的整数存储范围为(-2^15~2^15-1)。

unsigned类型的整数其16为全部用来编码,则unsigned的整数存储范围为(0~2^16-1)。

其他回答

signed和无符号适用于整数数据类型。signed用于表示有符号整数,可以表示正数、负数和零,范围从负的最大值到正的最大值。

无符号用于表示无符号整数,只能表示非负数和零,范围从零到正的最大值。这两种类型的选择取决于数据的含义和使用场景。

例如,如果需要表示年龄或温度等只有正数的数据,可以使用无符号类型,而如果需要表示财务数据或身高等有正负之分的数据,可以使用有符号类型。