C++问题整形的取值范围问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 23:46:50
就是我定义了一个整形(int)a; 然后输入一个数再输出它 我输入了 我看的书说整形(int)的取值范围在-32768--+32767可是我输入了比他大的数如:32769 他还是原数输出 我又输入了一个:88888888888888 然后他输出2147483647 然后我又试这输入 只要 是在2147483647以内的数都能正常输出 和他的取值范围不一样
谁能解释一下 急用 看过的就回个贴吧
谢谢了 0

int 整形的取值范围是与编译器有关系的,如果在VC++下应该是2147483647 这个范围
如果在TC 下,应该是-32768--+32767这个范围

你的书太旧啦

那时候 PC 一般用 dos 或者 windows 早期版本(win95 以前),操作系统是 16 位的,默认 int 也是 16 位的,一般采用补码,取值范围 -32768 ~ +32767

现在的 PC 一般用 32 位操作系统,int 也是 32 位的,取值范围 -2^31 ~ +2^31-1

一般而言,整数的范围是 -2^32到2^32-1(32位)。你看得书是16位(-2^16到2^16-1)

int的根据编译器不同而不同,
有些编译器是将int 和short的长度一样是16位,有些则是int 和long 的长度一样是32位.

int定义的是32位,你说的-32768--+32767是short int的定义