什么是无符号型?C程序中,有符号整型变量和无符号整型变量的区别在于哪里?

2天前 (07-16 09:49)阅读1回复0
路人甲
路人甲
  • 管理员
  • 注册排名2
  • 经验值287355
  • 级别管理员
  • 主题57471
  • 回复0
楼主
有符号数和无符号数的最大数值在大小上的关系是2x+1(x表示有符号数的最大值,2x+1表示无符号数最大值)。无符号整型和有符号整型运算依据表示数据的最大值来定(也是计算机中混合数据类型运算的特点,二者数据运算先将有符号整型转换成无符号整型再通过无符号数运算规则来计算。则用比当前数据类型大的最小数据类型来表示。有符号整型变量和无符号整型变量的区别在于哪里?

什么是无符号型?

无符号数只表示大小,有符号数最高位(二进制情况下最高位表示符号位),在同一操作系统下,有符号数和无符号数的最大数值在大小上的关系是2x+1(x表示有符号数的最大值,2x+1表示无符号数最大值)。二者表示的数据范围大小是相同的,但是范围不同。

无符号整型和有符号整型运算依据表示数据的最大值来定(也是计算机中混合数据类型运算的特点,两个不同类型数据运算,会取能表示较大数据的类型作为运算类型),二者数据运算先将有符号整型转换成无符号整型再通过无符号数运算规则来计算。数据如果超出了整型数据表示范围,则用比当前数据类型大的最小数据类型来表示。

C程序中,有符号整型变量和无符号整型变量的区别在于哪里?

什么是无符号型?C程序中,有符号整型变量和无符号整型变量的区别在于哪里?

C语言中无符号整型变量和有符号整型变量在同一系统中所占用的数据宽度一样。不同的是:有符号整型变量把数据的最高位作为符号位使用,因此能表示数的正负,表示范围:对于16位的变量为:-32368<=变量<=32367,对于32位的变量为:-2147483648<=变量<=2147483647;无符号整型变量把数据的最高位仍作为数据位使用,因此不能表示负数,表示范围:对于16位的变量为:0<=变量<=65535,对于32位的变量为:0<=变量<=429467295。

有符号整型和无符号整型输出结果为什么不一样?

整型有无符号(unsigned)和有符号(signed)两种类型;

在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需声明无符号类型的话就需要在类型前加上unsigned。

0
回帖

什么是无符号型?C程序中,有符号整型变量和无符号整型变量的区别在于哪里? 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息