C语言中,unsigned int型数据的取值范围是???

如题所述

0到65535。

举例:

unsigned a;

a=5;

或:unsigned int a;

a=5;

16位系统中一个int能存储的数据的范围为-32768~32767,而unsigned int能存储的数据范围则是0~65535,在计算机中,整数是以补码形式存放的。

系统使用

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

C支持所有整形数据类型的有符号数和无符号数运算。尽管C标准并没有指定某种有符号数的表示,但是几乎所有的机器都使用二进制补码。

通常,大多数数字默认都是有符号的,C也允许无符号数和有符号数之间的转换,转换原则是基本的位表示保持不变。因此在一台二进制补码机器上,当从无符号数转换为有符号数时,效果就是应用U2Tw,而从有符号转换为无符号数时,就是应用函数T2Uw,其中w表示数据类型的位数。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-01-31

0到65535。

如果是2个字节的int(其实就是signedint,signed默认罢了)

一个字节8位,两个字节就是16位,一位做符号位,那么取值范围:-2^15到2^15-1,即-32768到32767。

具体用法如下:

unsigned a;

a=5;

或:unsigned int a;

a=5;

16位系统中一个int能存储的数据的范围为-32768~32767,而unsigned int能存储的数据范围则是0~65535,在计算机中,整数是以补码形式存放的。

扩展资料:

无符号整型和有符号整型运算依据表示数据的最大值来定,二者数据运算先将有符号整型转换成无符号整型再通过无符号数运算规则来计算。数据如果超出了整型数据表示范围,则用比当前数据类型大的最小数据类型来表示。

在对应的带符号整型前面加上unsigned,也就是unsignedint、unsignedshort、unsignedlong、unsignedlonglong。其中unsignedint可以直接写为unsigned。}无符号整型不能存储负数,但存储的最大值可以扩大一倍,例如unsigned的范围就是0~232-1。

本回答被网友采纳
第2个回答  2021-05-29

0到65535。

0~4294967295

0x0~0xffff ffff

但是有的地方的unsigned int 只有16位,现在大部分的编程软件都是默认32位的

16位系统中一个int能存储的数据的范围为-32768~32767,而unsigned int能存储的数据范围则是0~65535,在计算机中,整数是以补码形式存放的。

十六进制整常数

十六进制整常数的前缀为0X或0x。其数码取值为0~9,A~F或a~f。

以下各数是合法的十六进制整常数:

0X2A(十进制为42) 0XA0 (十进制为160) 0XFFFF (十进制为65535)

以下各数不是合法的十六进制整常数:

5A (无前缀0X) 0X3H (含有非十六进制数码)

以上内容参考:百度百科-整型

本回答被网友采纳
第3个回答  推荐于2017-10-11
C语言没有规定整形的长度。这根我们使用的系统有关的。早期的16为机器int类型占2个字节,后来的32位int占4个字节。既然无符号所以所有的二进制位都用来表示数字。
16位表示的范围是0-2^16
32位表示的范围是0-2^32位
考试的时候推荐先看看题目有没有给定长度,没有就写16位的吧本回答被提问者采纳
第4个回答  2012-03-31
0~2^32