精华内容
下载资源
问答
  • int型长度

    千次阅读 2009-10-14 15:36:00
    Ø 基本数据类型C语言中只有4中基本数据类型——整型、浮点型、指针和聚合类型(如数组和结构等);所有其他类型都是从这4种基本类型的某种变化或组合派生而...int型字长问题:long int型至少应该和int型一样长,而int
    Ø 基本数据类型 C语言中只有4中基本数据类型——整型、浮点型、指针和聚合类型(如数组和结构等);所有其他类型都是从这4种基本类型的某种变化或组合派生而来。 一、整型家族 整型家族包括char、short int、int和long int,并且都分为signed和unsigned型。 int型字长问题: long int型至少应该和int型一样长,而int型至少应该和short int一样长。 ① C/C++规定int字长和机器字长相同; ② 操作系统字长和机器字长未必一致; ③ 编译器根据操作系统字长来定义int字长; http://www.programfan.com/club/showbbs.asp?id=145906 由上面三点可知,在一些没有操作系统的嵌入式计算机系统上,int的长度与处理器字长一致;有操作系统时,操作系统的字长与处理器的字长不一定一致,此时编译器根据操作系统的字长来定义int字长:“比如你在64位机器上运行DOS16系统,那么所有for dos16的C/C++编译器中int都是16位的;在64位机器上运行win32系统,那么所有for win32的C/C++编译器中int都是32位的”。(CPU的“字长”是指其一条指令/一次运算可以处理的数据的最大宽度。http://www.cublog.cn/u/23458/showart.php?id=175995) 另外,对于整型的数值范围,每个编译器里面都有一个标准头文件:limits.h,这个头文件定义了一些宏,这些宏表示该编译器使用的所有数据类型的范围,编程过程中 使用这些宏就行了。例如你想要的int的最大值可以使用宏INT_MAX,最小值使用INT_MIN,而无符号则可以使用UINT_MAX,还有其它类型 的。你自己把这个头文件打开看看就知道了。 附:关于“整形变量为32位”的问题的剖析: http://bbs.cpcw.com/viewthread.php?tid=666146 整形变量是不是32位这个问题不仅与具体的CPU架构有关,而且 与编译器有关。在嵌入式系统的编程中,一般整数的位数等于CPU字长,常用的嵌入式CPU芯片的字长为8、16、32,因而整形变量的长度可能是8、 16、32。在未来64位平台下,整形变量的长度可达到64位。 长整形变量的长度一般为CPU字长的2倍。 在数据结构的设计中,优秀的程序员并不会这样定义数据结构(假设为WIN32平台): typedef struct tagTypeExample { unsigned short x; unsigned int y; }TypeExample; 他们这样定义: #define unsigned short UINT16 //16位无符号整数 #define unsigned int UINT32 //32位无符号整数 typedef struct tagTypeExample { UINT16 x; UINT32 y; }TypeExample; 这样定义的数据结构非常具有通用性,如果上述32平台上的数据发送到16位平台上接收,在16位平台上仅仅需要修改UINT16、UINT32的定义: #define unsigned int UINT16 //16位无符号整数 #define unsigned long UINT32 //32位无符号整数 几乎所有的优秀软件设计文档都是这样定义数据结构的。 char型与程序可移植性: char类型变量在本质上是小整型值。 字符型(char型)也分signed char和unsigned char型,如果在定义变量时只使用关键字char,缺省情况下它根据编译器的定义为signed char或unsigned char,这意味着不同机器上的char可能有不同的取值范围。因此,只有当程序使用的char型变量的值位于signed char和unsigned char的交集中(例如编译器认为char为8位二进制长时,这个交集是0~127,ASCⅡ字符集的字符都在这个范围内),这个程序才是可移植的。 进一步,如果显示地将字符变量声明为signed或unsigned,则可提高程序的可移植性,不过,有些机器处理signed char和unsigned char的能力是不同的,硬性规定后可能会使效率受损,还有不少处理字符的库函数的参数声明为char,因此显示声明也可能会有兼容性问题。 结论:保证可移植性的最佳办法还是定义为char型同时只使用signed char和unsigned char型的交集字符,在进行算术运算时,可根据需要再使用显示地声明或者强制转换。
    展开全文
  • 【转】关于int型长度

    2011-08-10 10:56:22
    基本数据类型 C语言中只有4中基本数据类型——整型、浮点、指针和聚合类型(如数组和结构等);所有其他类型都是从这4种基本类型的某种变化或组合派生而来。   一、整型家族 整型家族包括char、short intint...

         基本数据类型 C语言中只有4中基本数据类型——整型、浮点型、指针和聚合类型(如数组和结构等);所有其他类型都是从这4种基本类型的某种变化或组合派生而来。 


         一、整型家族 整型家族包括char、short int、int和long int,并且都分为signed和unsigned型。 int型字长问题: long int型至少应该和int型一样长,而int型至少应该和short int一样长。

    ① C/C++规定int字长和机器字长相同; 

    ② 操作系统字长和机器字长未必一致;

    ③ 编译器根据操作系统字长来定义int字长; 由上面三点可知,在一些没有操作系统的嵌入式计算机系统上,int的长度与处理器字长一致;有操作系统时,操作系统的字长与处理器的字长不一定一致,此时 编译器根据操作系统的字长来定义int字长:“比如你在64位机器上运行DOS16系统,那么所有for dos16的C/C++编译器中int都是16位的;在64位机器上运行win32系统,那么所有for win32的C/C++编译器中int都是32位的”。(CPU的“字长”是指其一条指令/一次运算可以处理的数据的最大宽度。) 另外,对于整型的数值范围,每个编译器里面都有一个标准头文件:limits.h,这个头文件定义了一些宏,这些宏表示该编译器使用的所有数据类型的范 围,编程过程中 使用这些宏就行了。例如你想要的int的最大值可以使用宏INT_MAX,最小值使用INT_MIN,而无符号则可以使用UINT_MAX,还有其它类型的。你自己把这个头文件打开看看就知道了。整形变量是不是32位这个问题不仅与具体的CPU架构有关,而且与编译器有关。在嵌入式系统的编程中,一般整数的位数等于CPU字长,常用的嵌入式CPU芯片的字长为8、16、32,因而整形变量的长度可能是8、 16、32。在未来64位平台下,整形变量的长度可达到64位。 长整形变量的长度一般为CPU字长的2倍。 


            在数据结构的设计中,优秀的程序员并不会这样定义数据结构(假设为WIN32平台):

     typedef struct tagTypeExample

    {       unsigned short x;

            unsigned int y;

    }TypeExample;

    他们这样定义:

    #define unsigned short UINT16 //16位无符号整数
    #define unsigned int UINT32 //32位无符号整数
    typedef struct tagTypeExample
     { 

    UINT16 x; UINT32 y;

     }TypeExample; 

    这样定义的数据结构非常具有通用性,如果上述32平台上的数据发送到16位平台上接收,在16位平台上仅仅需要修改UINT16、UINT32的定义: #define unsigned int UINT16 //16位无符号整数
    #define unsigned long UINT32 //32位无符号整数

     几乎所有的优秀软件设计文档都是这样定义数据结构的。 


             char型与程序可移植性: char类型变量在本质上是小整型值。 字符型(char型)也分signed char和unsigned char型,如果在定义变量时只使用关键字char,缺省情况下它根据编译器的定义为signed char或unsigned char,这意味着不同机器上的char可能有不同的取值范围。因此,只有当程序使用的char型变量的值位于signed char和unsigned char的交集中(例如编译器认为char为8位二进制长时,这个交集是0~127,ASCⅡ字符集的字符都在这个范围内),这个程序才是可移植的。 进一步,如果显示地将字符变量声明为signed或unsigned,则可提高程序的可移植性,不过,有些机器处理signed char和unsigned char的能力是不同的,硬性规定后可能会使效率受损,还有不少处理字符的库函数的参数声明为char,因此显示声明也可能会有兼容性问题。  结论:保证可移植性的最佳办法还是定义为char型同时只使用signed char和unsigned char型的交集字符,在进行算术运算时,可根据需要再显示地声明或者强制转换
    展开全文
  • mysql中int数据类型长度的问题

    千次阅读 2013-08-07 16:10:47
    mysql中int数据类型长度的问题 mysql中定义int数据类型后,后面填写的长度具体有什么用?如果长度为4,请问最大的数是多少?如果是自增的可以是多少条?这些问题,您都可以在下文中找到答案 。 在...

    mysql中int数据类型长度的问题

    mysql中定义了int数据类型后,后面填写的长度具体有什么用?如果长度为4,请问最大的数是多少?如果是自增的可以是多少条?这些问题,您都可以在下文中找到答案

    在定义了mysql中int数据类型后,后面填写的长度有什么用呢?下文将对mysql中int数据类型长度进行详细的介绍,希望对您能有所帮助。

    mysql中int数据类型长度最大为11位,最少为4位,不够在前面补空格。

    这个可选的宽度规格说明是用于在数值显示时,对某些值的宽度短于该列宽度的值进行左填补显示的,而不是为了限制在该列中存储值的宽度,也 不是为了限制那些超过该列指定宽度的值的可被显示的数字位数。注意,如果在一个整型列中存储一个超过显示宽度的更大值时,当 mysql 为某些复杂的联结(join)生成临时表时,你可能会遇到问题,因为在这种情况下,mysql 信任地认为所有的值均适合原始的列宽度。

    而mysql中int本身就是4个字节 bigint是8个字节 所以说int(X)的含义就是 int决定数据存储的字节 X表示期望数据的列宽度

    在SQL语句中int代表你要创建字段的类型,int代表整型,11代表字段的长度。

    整数列的显示宽度与mysql需要用多少个字符来显示该列数值,与该整数需要的存储空间的大小都没有关系,比如,不管设定了显示宽度是多少个字符,bigint都要占用8个字节。

    展开全文
  • int类型长度的设定值范围1~255(设置0时自动转为11,不设置时自动转为默认的11)(显示宽度),在此范围内任意长度值的字段值范围都是-2147483648~2147483647(即-2³¹-1~2³¹-1) tinyint类型长度设定值范围...

    1.varchar类型的长度是指这个字段的字符(字母或汉字)个数。

    2.数字类型的长度就不是这个意思,更为复杂。

    int类型:长度的设定值范围1~255(设置0时自动转为11,不设置时自动转为默认的11)(显示宽度),在此范围内任意长度值的字段值范围都是-2147483648~2147483647(即-2³¹-1~2³¹-1)

    tinyint类型:长度设定值范围1~255(设置0时自动转为4,不设置时自动转为默认的4)(显示宽度),在此范围内任意长度值的字段值范围都是-128~127(-2⁷-1~2⁷-1)

    如:

    指定一个字段的类型为 INT(6),就可以保证所包含数字少于 6 个的值从数据库中检索出来时能够自动地用空格填充。需要注意的是,使用一个宽度指示器不会影响字段的大小和它可以存储的值的范围。 

     

    总结:显示宽度与存储大小或类型包含的值的范围无关。可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。当 mysql 为某些复杂的联结(join)生成临时表时,你可能会遇到问题,因为在这种情况下,mysql 信任地认为所有的值均适合原始的列宽度

    这个可选的宽度规格说明是用于在数值显示时,对某些值的宽度短于该列宽度的值进行左填补显示的,而不是为了限制在该列中存储值的宽度,也 不是为了限制那些超过该列指定宽度的值的可被显示的数字位 数。

     

    要查看出不同效果记得在创建类型的时候加 zerofill这个值,表示用0填充,否则看不出效果的。

    我们通常在创建数据库的时候都不会加入这个选项,所以可以说他们之间是没有区别的。

    实例:

    1.varchar

    varchar(5):字段只允许最多5个字符或者5个汉字

    2.int

    INT(1):字段值范围在-2147483648~2147483647(即-2³¹-1~2³¹-1)内的数值都可以insert、select、update,此处宽度指示器的数值1不起作用。手动在navicat中改此字段的值,也可通过sql修改。

    int(1)、int(4)、int(11)和int(110)表示意思是一样的。

    INT(M) ZEROFILL,加上ZEROFILL后M才表现出不同,比如 INT(3) ZEROFILL,你插入到数据库里的是10,则实际插入为010,也就是在前面补充加了一个0.如果INT(3)和INT(10)不加ZEROFILL,则它们没有什么区别.M不是用来限制INT列内保存值的范围的.int(M)的最大值和最小值与UNSIGNED有关。

    MySQL类型关键字后面的括号内指定整数值的显示宽度(例如,INT(11))。该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。

    所以INT(1)和INT(11)默认是没有任何区别的!!!

    参考:https://blog.csdn.net/yangyang_01/article/details/80681187

    3.float

    float(7,3):字段总允许宽度为7,其中整数部分为4位(数值范围可在0-9999),小数部分为3位(数值范围可在0-999)

    第一次设置此字段成功后,不可再次手动在navicat中此字段所在数据行的所有字段值也不可手动删除这条记录,但可通过sql修改。

    4.tinyint

    tinyint(1):(类似int)字段值范围在-128~127(-2⁷-1~2⁷-1)内的数值都可以insert、select、update,此处宽度指示器的数值1不起作用。手动在navicat中改此字段的值,也可通过sql修改。

    5.double

    double(7,3):字段总允许宽度为7,其中整数部分为4位(数值范围可在0-9999),小数部分为3位(数值范围可在0-999)

    手动在navicat中改此字段及同数据行其他字段的值,也可通过sql修改。

     

     

    参考:

     

    http://www.cnblogs.com/echo-something/archive/2012/08/26/mysql_int.html

    http://www.cnblogs.com/huligong1234/archive/2012/06/11/2545682.html

    http://blog.csdn.net/lyd518/article/details/20703095

    http://blog.knowsky.com/253505.htm

     

    展开全文
  • 填完字段名、数据类型之后就要填写长度,就好比int(4) varchar(16)这里的4和16 ,这个M代表什么意思呢?varchar类型的没什么异议,但是这个INT的呢?第一感觉就是代表长度,我只能存储4个数字以内的,可我存超过4位...
  • int 长度

    2010-04-26 17:20:04
    Ø 基本数据类型 C语言中只有4中基本数据类型——整型、浮点型、指针和聚合类型(如数组和结构等);所有其他类型都是从这4种基本类型的某种变化或组合派生而来。...long int型至少应该和int型一样长,...
  • 数据库int类型字段长度的含义

    万次阅读 2015-06-30 12:45:17
    在数据库中创建一张表时,要设置各字段的数据“类型”和“长度”。 如:varchar(10)表示长度上限...int类型长度表示能显示的10进制数的位数的上限,实际上也限制了字段中数值的范围。 初步理解,不能道尽其中意思。
  • 使用说明:  1. 定义enum的最后一项的逗号“,”,可有可无;  2....  3. 定义enum变量,C和C++方式不同;... enum变量与int互相转换; 代码: #include #include enum type { AAA = 1, BBB
  • C++的int长度

    千次阅读 2020-04-06 17:12:59
    早期的操作系统是16位 int长度是2字节,范围是-32768~32767; long int长度是4个字节,范围是-2147483648~2147483647;...//下面三种定义效果都是一样的,int占4个字节,范围是-2147483648~...
  • C语言 获取int数组长度

    万次阅读 2014-08-22 11:01:06
    函数通过参数传入一个数组的指针,如何获取该数组的长度?如 int InsertSort(int* array,int key) 其中array的长度如何获取? 用过sizeof(array) / sizeof(int),但是结果不对,始终是1
  • c语言int型数组长度求法及测试

    千次阅读 2013-10-28 11:08:07
    解决方案sizeof(s)/sizeof(int) s是定义的数组,即用数组所占的内存大小除以整型占得内存,就会得到数组的长度。 测试程序如下(环境:Ubuntu 2013): #include #include #include   int main() {  int ...
  • 定义一个长度为10的int类型数组,元素值使用随机数生成(范围为50-80) public class Test04_01 { public static void main(String[] args) { Random r = new Random(); int[] arr = new int[10]; // 遍历元素 ...
  • mysql中int(11)长度

    万次阅读 2018-04-20 11:04:04
    mysql中int(1)和int(11)区别呢,按理来讲int定义之后长度不受我们设置的限制了,那么mysql中int(1)和int(11)区别是什么呢? mysql字段定义INT(x)中的x仅仅指的是显示宽度。该可选显示宽度规定用于显示宽度小于指定...
  • 初学c++,定义了一个int arr[5]; 我想求arr 的实际长度是多少,没找到方法,自己写了一个方法,不知道是否可行。 int arr[5]; arr[1] = 1; arr[2] = 2; arr[3] = 3; // 模拟数据,int数组arr 实际长度 为 3 ...
  • 字符 char 1字节 单精度 float 4字节 双精度 double 8字节 长双精度 long double 8字节 注释: long是修饰数据类型的一个修饰词。 例如,长双精度就是说 long double ,而长整型就是说 long int,简
  • 8位单片机中unsigned int长度是多少

    千次阅读 2014-08-14 18:05:45
    定义了一个int 数据,内存就分配给它两个字节。所以int数据都是16位的。unsigned int 数据是无符号整形,最高位不表示符号,所以从0000,0000,0000,0000B------1111,1111,1111,1111B.即从0x0000----0xffff。如果...
  • (zt)int()字段类型长度 问题

    千次阅读 2011-01-04 11:25:00
    http://hi.baidu.com/%BC%D6%D3%F0%CE%F5/blog/item/a73c6d014ad951011c95831a.html/cmtid/642c5a510807092a43a75b03<br />int()字段类型长度 问题 <br />一直以来我定义int数据类型时填写的长度都是为11...
  • **题目:定义一个长度为5的int型数组,之后生成5个随机数存入数组,随机数范围为10到100(包含10和100),遍历数组,将数组中大于70的元素替换成5,之后打印修改后的数组并且打印修改数组的次数。 /*分析: 定义一...
  • C与C++中的数据类型长度  一、C  1.几条规则  (1)char类型一般是8bit,但ANSI C里没有硬性规定其长度,某些嵌入式编译器可能是16bit  (2)short和long类型的长度不相同  (3)int类型通常同具体机器的物理...
  • 定义一个int类型的随机数,其中包含15个元素使用随机数,对数组进行赋值,输出数组中最大值。 public static void main(String[] args) { //定义数组 int[] arr = new int[15]; Random r = new Random(); //赋值...
  • 定义一个方法传入一个 int 类型数组,输出这个数组中每一个数字及其出现的个数 例如 传入数组[1,2,2,2,3,3,4,4,4,4] 打印结果: 数字 1 出现了 1 次 数字 2 出现了 3 次…
  • Oracle中varchar2类型的字段长度单位默认是按照byte来定义, 比如常见写法varchar2(10) 代表只接收最大10字节长度 这种定义情况下10字节只能插入3个汉字,(数字字母只占一字节,汉字占三字节) 如果插入4个汉字...
  • int8_t int16_t int32_t等数据类型定义

    千次阅读 2019-07-24 17:27:05
    一、数据类型特别是int相关的类型在不同位数机器的平台下长度不同。C99标准并不规定具体数据类型长度大小,只规定级别: 16位平台 char 1个字节8位 short 2个字节16位 int 2个字节16位 long 4个字节32位 指针...
  • 而指定的长度称作显示宽度,mysql中column定义中有个叫zerofill的属性,当该属性设置为true时,则int型后面的长度就起作用了。当int值不满指定长度时,则显示时前面会自动补0,如int(6)的值为11,则显示为000011。 ...
  • 最近思考了c语言数组长度的问题, 又看了这篇文章,觉得自己学了6,7年程序,c语言刚刚开始入门。 http://topic.csdn.net/t/20060205/18/4540750.html 另外请参考这篇文章: ...即:int length(int ar[])
  • MySQL数据库中几种int数据类型的区别...字符串类型就不一样了,不管是char还是varcher他们的宽度就是定义了字符串最大的长度。 例如:varcher(10),如果你输入了一个21个字符的密码,那么保存的只有20个,就会少一个。
  • 一个int类型占用4字节是固定的,但是MySQL里的长度设置有什么意义? 网上都说是会补0,但是我试了试也没看见补0,那他的补0是啥意思 官方手册似乎没有提到这个问题,翻了好久并没有看到解释 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 585,262
精华内容 234,104
关键字:

怎么定义int型长度