标签: 字节Byte

  • MySQL int类型 最大值范围 关于mysql 使用int类型出现 1264 Out of range value for column 错误的解决办法

    MySQL int类型 最大值范围 关于mysql 使用int类型出现 1264 Out of range value for column 错误的解决办法

    关于mysql 出现 1264 Out of range value for column , 首先我们了解一下MySQL中int类型的基础知识。

    字节

    我们都知道计算机是以二进制为基础。存储的基本单位是 Bit,也称为比特二进制位。1bit 可以表示 0 或者 1 两个数字,是可能存在的最小的信息量,任何小于1 bit 的内容都算不上信息。

    复杂的内容就要用多 bit 来表示。Byte ,也称为字节,通常用作计量单位。1 byte 等于 8 bit,即 1 byte 可以表示 28 内容。

    MySQL 中的字节

    先说明一下,在 MySQL 中的整数类型,可以分为 unsigned 和 signed 两种,即无符号和有符号,具体内容这里不展开。tinyint 的大小就是 1 byte,在 signed 类型能表示的数字以下表为例。(注:表格根据《编码》修改,仅做举例说明,不代表 MySQL 实际存储)

    二进制数十进制数
    10000000-128
    10000001-127
    10000010-126
    10000011-125
    11111101-3
    11111110-2
    11111111-1
    000000000
    000000011
    000000102
    011111100124
    011111101125
    011111110126
    011111111127

    int 最大值

    在上表中我们看到,首位的 bit 用来表示符号,因此在 sigend 是少一位 bit 来存储内容。int 是 4 byte,结合上述,可以得出 int 在 signed 最大值为

    2**31−1=2147483647

    在 unsigned 中,无需首位 bit 表示符号,因此为

    2**32−1=4294967295

    解决办法

    此时可能是数据值超出了范围,我们可能需要将 int 类型 改成 bigint .

WeChat