mysql SQL:整数类型的最小值和最大值是如何计算的?

zengzsys  于 2023-05-28  发布在  Mysql
关注(0)|答案(2)|浏览(234)

谁能告诉我数据类型的范围是如何计算的?例如,在MySQL或PostgreSQL中,我们有smallint,integer和bigint,smallint的范围是-32768或+32767。这些范围是如何计算的?

ruyhziif

ruyhziif1#

您的数据类型是int,表示为2字节类型。2 bytes表示其二进制表示中的2 x 8 = 16位。此外,您的示例数据类型是 signed -这意味着最高位将用作符号(0用于正数,1用于负数)。
从数学上知道,对于二进制值,您可以保存2^n唯一值,即对于您的16-1位,将有15个可用位。所以这将是-(2^n) .. 2^n-1范围,其中n=15。当你计算-(2^15)2^15 - 1时,你会得到-3276832767。就这样

r7xajy2e

r7xajy2e2#

查看文档中的此页
http://www.postgresql.org/docs/9.2/static/datatype-numeric.html
数字基于数据二进制宽度01111111111111 ~ 32767,10000000000000 ~ -32768
你可以找到很多文档:搜索“补码格式算术数字”

相关问题