|||
我建议你去看看 最基本的 计算机存储方式
|||
与编译器有关了 超出范围 因为此时计算机无法表示 -32 768~32 767这个范围是十进制数的范围 16只是2进制数的范围 16跟-32 768~32 767这个没关系
|||
取值范围 不能超过-32 768~32 767
|||
16位不是十六位数 所谓的16位也就知道能是16个1和0的组合
|||
首先要看你所在的环境:1、如果你是在16位操作系统下写DOS程序 一般是采用16位 无法表示 计算机只认二进制 1个位所存放的就是1 OR 0 位是存放二进制的
|||
补充下:所谓的16位(bit)就是2个字节(btye) 正数和负数相加就=65535个数 中间的有个0所以正数就只能到32767 INT的范围就成了-32768~32767 也就是说2个字节内只能存放65536个数字 再加个0就是65536 16个1=65535 比如 a=32768 就溢出了
|||
一般来说int型变量为16位
int型的数值范围是16位2进制数 而且是按带符号数的补码来看的 最高位是符号位 也就是从0111111111111111~1111111111111111换算成10进制的就是-2^15~(2^15)-1 也就是-32768~32767
|||
int a;a=5;给a赋值一定要在范围为-32 768~32 767
|||
整型中的各个数的取值范围啊 他有给变量类型 固定的空间的 固定就是范围 你可以对照我上面说的自己去算算在32位环境下int型的取值范围是多少
|||
这个是有符号的整形啊没有符号是0-65535吧
|||
如果超过这个范围就会产生溢出`溢出后的数是随机的
也就是占32位 int型占4个字节 所以它的取值范围是-32768 ~~ +327672、如果是32位操作系统 2的15次方也就是32768 这样它就用15位表示一个整体值 为1表示负数) 所以它的最高位为符号位(为0表示正数 但int型是有符号的(也就是有正负之分) 这个值是65536 是2的16次方 也就是int占16位 每个字节8位 那int型占2个字节 当然除了C以外其他的语言采用了某些别的方法来限定比如C#就将int分为了int16、int32、int64……之类的
|||
int型的取值范围
|||
语言的范围就是二进制转十进制 int a;那么a的取值范围是-32 768~32 767如果超过这个范围就会出现错误 即1111111111111111;转换成十进制正好是32673
|||
16位表示的是二进制 所以他的范围最大是2的15次方即0111111111111111而最小的值是1111111111111111
|||
整型int在C中占2个字节 最高位表示符号 规定是从-32 768~32 767
|||
你说的这个是对于32位系统的 所以int能储存16位的二进制数据 ·溢出 其实是 假的 比如当超过最大值1 时他会循环回来 变成0
|||
只是一个范围而已 就溢出了 如果超出16位 一个字节可以储存8位数据
C语言中关键词 "int 数的范围为-32 768~32 767"是什么意思
本文详细解析了16位整型变量(int型)在不同环境下的取值范围,包括其在二进制表示下的原理,以及在计算机科学中如何避免溢出等问题。

被折叠的 条评论
为什么被折叠?



