码迷,mamicode.com
首页 > 其他好文 > 详细

常用的数据类型

时间:2015-10-14 11:51:54      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

C中:

  short:短型,范围-32767~32767 即-(2^15-1)~(2^15-1),C++标准中只限制规定short int不能超过int的长度,具体长度的可以由C++编译器的实现厂商自行决定,short 占2字节,一般是16位

  unsigned short:无符号短型,0 到 65535(2^16 - 1)

  int:整型,范围-32767~32767 即-(2^15-1)~(2^15-1),在32位系统中占4个字节,16位系统中占2个字节,一般是32位或者16位

  unsigned int:无符号短型,0 到 65535(2^16 - 1)

  long:长整型,范围-2147483647 到 2147483647 即 -(2^31 - 1) 到 (2^31 - 1),一般是32位

  unsigned long :无符号长整型,范围是 0 到 4294967295(2^32 - 1)

  long long:长长整形,范围是 -9223372036854775807到 9223372036854775807即(-(2^63 - 1))~(2^63 - 1)一般是64位

  unsigned long long :无符号长长整形,是 0 到 18446744073709551615(2^64 - 1)

  

  float:单精度浮点型,在机内占4个字节,用32位二进制描述,

1bit(符号位) 8bits(指数位) 23bits(尾数位)

 

      float的指数位有8位,float的指数范围为-127~+128

      float的范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38

      float的精度为6~7位有效数字

  double:双精度浮点型,在机内占8个字节,用64位二进制描述

1bit(符号位) 11bits(指数位) 52bits(尾数位)

 

       double的指数位有11位,而double的指数范围为-1023~+1024

       double的精度为15~16位

       double的范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308


  
PS:浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分。

      指数符占1位二进制,表示指数的正负。

      尾数表示浮点数有效数字,

      0.xxxxxxx,但不存开头的0和点

      指数存指数的有效数字。

 

      double 和 float 的区别是double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,double的运算速度比float慢得多

       并且指数位是按补码的形式来划分的。其中负指数决定了浮点数所能表达的绝对值最小的非零数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围

      float和double的精度是由尾数的位数来决定的

 OC中:

   NSInteger:在32位系统中是int类型,在64位系统中是long类型

   NSUInteger:在32位系统中是无符号int类型,在64位系统中是无符号long类型

    

   CGFloat:在32位系统中是float类型,在64位系统中是double类型

 

 

常用的数据类型

标签:

原文地址:http://www.cnblogs.com/small-octopus/p/4876523.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!