美文网首页iOS工作环境搭建系统层知识基础应用
iOS 在32位和64位下,数据类型占用字节

iOS 在32位和64位下,数据类型占用字节

作者: 上路喽 | 来源:发表于2017-08-08 13:36 被阅读589次

32位编译器

char :1个字节

char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)

short int : 2个字节

int:  4个字节                        范围  -2147483648~2147483647

unsigned int : 4个字节

long:  4个字节                         范围 和int一样

long long:  8个字节                 范围  -9223372036854775808~9223372036854775807

unsigned long long:  8个字节    最大值:1844674407370955161

float:  4个字节

double:  8个字节

64位编译器

char :1个字节

char*(即指针变量): 8个字节

short int : 2个字节

int:  4个字节                      范围  -2147483648~2147483647

unsigned int : 4个字节

long:  8个字节                     范围  -9223372036854775808~9223372036854775807

long long:  8个字节            范围  -9223372036854775808~9223372036854775807

unsigned long long:  8个字节    最大值:1844674407370955161

float:  4个字节

double:  8个字节

注意:64bit和32bit下  long 和char*所占字节是不同的

4个字节的最大范围是4294967295, int只是占四个字节 不能用int来存储四个字节的数,要不然会越界

int与NSInteger区别

在苹果的api实现中,NSInteger是一个封装,它会识别当前操作系统的位数,自动返回最大的类型。

定义的代码类似于下:

ifLP64|| TARGET_OS_EMBEDDED || TARGET_OS_IPHONE || TARGET_OS_WIN32 || NS_BUILD_32_LIKE_64

typedef long NSInteger;

typedef unsigned long NSUInteger;

else

typedef int NSInteger;

typedef unsigned int NSUInteger;

endif

NSInteger与int的区别是NSInteger会根据系统的位数(32or64)自动选择int的最大数值(int or long)

相关文章

  • 深挖iOS底层(3)

    深挖iOS底层(3) Sizeof() 定义:打印当前数据类型的占用大小,单位为字节sizeof(结构体):结构体...

  • 基本数据类型-整型变量/常量

    1.Java四种整数数据类型@byte:占用1字节@short:占用2字节@int:占用4字节@long:占用8字...

  • iOS 在32位和64位下,数据类型占用字节

    32位编译器 char :1个字节 char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个b...

  • iOS开发之内存对齐

      我们先来看两个结构体:   在 架构下, 占用4个字节, 占用1个字节, 8个字节, 2个字节,那么结构体 和...

  • C++基础与实战

    Hello Word 数据类型 整形:int占用4字节空间短整形:short int 占用两个字节长整型:long...

  • Java中的数据类型(一)

    基本数据类型整型字节型(byte),占用一个字节的存储空间;短整型(short),占用两个字节的存储空间;整型(i...

  • 数据类型、拆箱和装箱

    基本数据类型占用的字节和bit位 以及 可表示的取值范围 内存中缓存的值的范围 引用数据类型 基本数据类型:整型:...

  • JAVA面试题总览--JAVA基础

    1. JAVA中的几种基本数据类型是什么,各自占用多少字节。 类型占位取值范围字节大小 ============...

  • java面试基础知识

    1. JAVA中的几种基本数据类型是什么,各自占用多少字节? 答: byte 1字节 short 2字节 ...

  • c语言点滴

    在c语言中,变量占用的字节数仅与数据类型有关,而和变量内数据的大小无关。 指针变量的数据类型,必须和它指向的变量的...

网友评论

    本文标题:iOS 在32位和64位下,数据类型占用字节

    本文链接:https://www.haomeiwen.com/subject/lnktrxtx.html