C语言中int取值范围是根据什么来的?求指教?
在《CPrimerPlus》中说:int类型是有符号整型,即int类型的值必须是整型,可以是正整数,负整数或零。其取值范围依计算机系统而异。那么的我计算机操作系统为86位...
在《C Primer Plus》中说:int类型是有符号整型,即int类型的值必须是整型,可以是正整数,负整数或零。其取值范围依计算机系统而异。
那么的我计算机操作系统为86位,当声明一个名为num的int类型的变量时,其取值范围不是应该为-9223372036854775808~9223372036854775807么,为什么我输入num=9223372036854775807会出错啊?
写错了,是64位! 展开
那么的我计算机操作系统为86位,当声明一个名为num的int类型的变量时,其取值范围不是应该为-9223372036854775808~9223372036854775807么,为什么我输入num=9223372036854775807会出错啊?
写错了,是64位! 展开
2016-07-16
展开全部
初学者,你纠结这个问题干嘛?如果你想要获取无符号int的最大值,直接UINTN_MAX不就行了,N就是你的计算机位数。这些宏定义,自己去查。
能表示多少范围的数,是取决于计算机的长度,和编译器的变异设置的。还有的就是码数的表示方式。
懂了吧,想了解更多的话可以加我,我有空的时候可以跟你说说。
能表示多少范围的数,是取决于计算机的长度,和编译器的变异设置的。还有的就是码数的表示方式。
懂了吧,想了解更多的话可以加我,我有空的时候可以跟你说说。
更多追问追答
追问
哦,我就是想弄明白!
追答
嗯,我就喜欢你这种喜欢想探究的人,其实如果你是为了一般开发,这种东西根本没多少个人懂,抽1000个程序员出来,懂的也不会有几个。问你几个问题,不算难。你尽力想想看怎样。
1:计算机为什么要有int, float, 这些之分?
2:无符号(unsigned)和有符号(signed)有什么区别?
3:他们经常说的原码,补码,反码是怎么来的?为什么要弄这些东西出来?
4:为什么网络传输要把数转成utf-8,而不是直接传输数字的二进制表示?
提示:其实计算机就是现实世界实数系的映射。本质就是数值处理(加减乘除)。
原理的话这里写不完,你想想问题再说吧。可能想得到本质也说不定、
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询