C语言中关键词 "int 数的范围为-32 768~32 767"是什么意思

||| 我建议你去看看 最基本的 计算机存储方式 ||| 与编译器有关了 超出范围 因为此时计算机无法表示 -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,dos,C#,存储,语言,编译器)