在JAVA中int类型取值是和C语言的区别?

来源:百度知道 编辑:UC知道 时间:2024/05/31 12:50:16
小弟初学编程起步是JAVA.C#.兼学SQL2005 现在课外学习C\C++..看到里面有关于INT类型的数据类型取值范围很是迷惑求高人指点,根据我的发问详细做解的给分!
问题1. JAVA的取值是【根据个人PC机32位】是-2147483648到2147483647那么64位机取值是不是-18446744073709551616到18446744073709551615?
(这么长的一个数字是我用电脑上附件里的计算器算的) 计算器能算比这个还大的数 为什么? 为什么JAVA int就不能..还有这64位机说的是CPU还是操作系统..?
问题2.C/C++更奇怪 int和short int 取值都是-32768到32767 据说是内存分配空间不同。。请高手具体给出详解
问题3.SQL里有int(10) 这int(10)和我直接写个int有多大区别 还有。例如:varchar(8)这是说我能写8个英文字母或者4个汉字吗? 括号里的8是8个字节的意思吗? 【据说汉字占2个字节,英文字母占1个字节】
楼下的哥们 说的还不够仔细,能不能把我每个问号的问题 都回答一下 (例如:最后我问的 SQL里int(10)和int 的区别 分配内存问题)
谢谢了..你的回答我不能给分抱歉!

int 的定义由编译器决定。
JAVA,TC, MS VC++, cc, gcc 各有各的定义。
TC int 是 short, VC++ int 是 long.
short -- 16位,long -- 32位.

64位机 -- 指 基本指令 长度 和 操作数 长度。涉及CPU和操作系统两者。

计算机计量单位习惯用 BYTE(字节),一个 BYTE 等于 8 bits. bit--位.
32位 -- 4个BYTEs, 16位 -- 2个BYTEs, 64位 -- 8个BYTEs.

汉字占2个字节 -- 指 国标 GB2312_1980 汉字编码,及其unicode.
英文字母占1个字节 -- 指 ASCII
别的编法可不一定。