关于int 跟unsigned int 取值 范围

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于int 跟unsigned int 取值 范围相关的知识,希望对你有一定的参考价值。

i nt的取值范围 为什么-32768 ~32767 int 取值不是 16位 那应该是-65535~65535 还有 unsigned int 为什么最大值65535 而 int是32767不是 都是16位整形吗

在内存中占16位,而且是以2进制形式,16位,是指二进制有16个位数比如1111 1111 1111 1111 表示65535,带符号的,有一个标志位是决定变量的正负,0111 1111 1111 1111和1111 1111 1111 1111就表示负正,其中一位表示符号位,其他15位表示值,不知道你理解了吗,表达不是很好,希望对你有帮助。 参考技术A int:基本整型,当字节数为2时 取值范围为-32768~32767,当字节数为4时 取值范围
负的2的31次方 到 2的31次方减1
unsigned int:无符号基本整型,当字节数为2时 取值范围为0~6535,当字节数为4时 取值范围为0到2的32次方减1
参考技术B java没有无符号类型。int类型的取值范围也不是-32768-----32767,这是shot类型。
int类型看这个
http://zhidao.baidu.com/question/176374554.html?sort=6&old=1&afterAnswer=1#reply-box-1243080946

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表示数据类型的位数。

参考技术A 在C语言中,unsigned int类型表示无符号整数,它的取值范围是从0到4294967295(2的32次方减1),即可以表示0和正整数。由于没有符号位,所以无法表示负数。

以上是关于关于int 跟unsigned int 取值 范围的主要内容,如果未能解决你的问题,请参考以下文章

设int 类型的数据长度为2个字节 则unsigned int 类型数据的取值范围 怎么算

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

C语言各个数据类型取值范围

unsign的问题

intlonglong long取值范围

MySQL的int (10) 和 int (11) 的区别