导读:本篇文章首席CTO笔记来给大家介绍有关pythonint多少字节数的相关内容,希望对大家有所帮助,一起来看看吧。
python int占几个字节
《深入理解计算机系统》这本书上面提到了在32位机器和64机器中int类型都占用4个字节。《The C Programming language》这本书,里面有一句话是这样的:Each compiler is free to choose appropriate sizes for its own hardware, subject only to the restriction that shorts and ints are at least 16bits, longs are at least 32bits, and short is no longer than int, which is no longer than long.意思大致是编译器可以根据自身硬件来选择合适的大小,但是需要满足约束:short和int型至少为16位,long型至少为32位,并且short型长度不能超过int型,而int型不能超过long型。这即是说各个类型的变量长度是由编译器来决定的,而当前主流的编译器中一般是32位机器和64位机器中int型都是4个字节(例如,GCC)。
相关推荐:《Python教程》
下面列举在GCC编译器下32位机器和64位机器各个类型变量所占字节数:
需要说明一下的是指针类型存储的是所指向变量的地址,所以32位机器只需要32bit,而64位机器需要64bit。
python是几比特?
以python3版本为例说明, int 类型在python中是动态长度的。因为python3中int类型是长整型,理论支持大的数字,但它的结构其实也很简单, 在 longintepr.h 中定义:
struct _longobject {
PyObject_VAR_HEAD
digit ob_digit[1];
};
这结构是什么意思呢,重点在于 ob_digit 它是一个数组指针。digit 可认为是 int的别名。python的整型存储机制是这样的。比方要表示一个很大的数:123456789 。而每个元素只能表示3位十进制数(为理解打的比方)。那么python就会这样存储:
ob_digit[0] = 789
ob_digit[1] = 456
ob_digit[2] = 123
低位存于低索引下。python中整型结构中的数组,每个元素存储 15 位的二进制数(不同位数操作系统有差异32位系统存15位,64位系统是30位)。
因此,sys.getsizeof(0) 数组元素为0。此时占用24字节(PyObject_VAR_HEAD 的大小)。 sys.getsizeof(456) 需使用一个元素,因此多了4个字节。
一个int占多少字节
在C/C++语言中,int和long int的所占的字节数与编译器有关。
不过现在常用的编译器多认为int和long int相同,均为4字节,short为2字节,char为1字节。
如果只输入int,它是可以包含以上三种形式。
不同的语言不太一样,例如在Pascal中integer为2字节,byte为1字节,而longint为4字节。
建议您最好参考您的编译器的具体帮助,以得到更准确的信息。
使用前最好sizeof(int) 看看当前编译器如何定义的。
依据程序编译器的不同,int定义的字节数不同。(数据占用内存储器的大小不同)
常用的单片机编译器,如KEIL下,51类单片机的C语言中,int代表2个字节(16位);如果是32位RAM处理器的C语言中,则int代表4个字节(32位)
PIC单片机的PICC中8位系列单片机的C语言里int表示16位。
而不少PC端软件的编译器则会根据操作系统或处理器(如64位XP)把int定义为8字节(64位)
所以在多平台上编程的人员需要在使用时注意。
如需定义16位数,可使用short(短、短整数类型)定义。
扩展资料:
在一般的电脑中,int占用4字节,32比特,数据范围为-2147483648~2147483647[-2^31~2^31-1]。
在之前的微型机中,int占用2字节,16比特,数据范围为-32768~32767[-2^15~2^15-1]。
使用printf输出int占用字节数量:
除了int类型之外,还有short、long、long long类型可以表示整数。
unsigned int 表示无符号整数,数据范围为[0~2^32-1]。
参考链接:INT(数据类型)_百度百科
结语:以上就是首席CTO笔记为大家整理的关于pythonint多少字节数的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于pythonint多少字节数的相关内容别忘了在本站进行查找喔。