3

如何在 mysql 中表示这些数据?

16 bit unsigned integer -----Range: 0x0000 - 0xFFF7
64 bit unsigned int.  Depicted as xx:xx:xx:xx:xx:xx:xx:xx -----Range: 0x0000 - 0xFFFFFFFFFFFFFFFF
2 bits ----- 00 - None,  01 - Residential  Security,  10 - High Security
32 bit unsigned int

我应该将所有内容都转换为字符串并在应用层进行转换吗?

4

2 回答 2

6

根据MySQL 的数字类型概述

  • UNSIGNED SMALLINT: 范围是 0 到 65535。这对于 16 位无符号整数就足够了。
  • UNSIGNED TINYINT: 范围是 0 到 255。对于 2 位无符号整数来说足够了。看来您需要保留前导零,所以ZEROFILL也要使用。要将值保持为两个字符宽,您可以指定UNSIGNED ZEROFILL TINYINT(2).
  • UNSIGNED INT:范围是 0 到 4294967295。对于 32 位无符号整数来说足够了。
  • UNSIGNED BIGINT:范围是 0 到 18446744073709551615。见下文:

最后一个,64 位无符号整数,有几个警告,来自上面的链接页面:

  • 所有算术都是使用带符号的 BIGINT 或 DOUBLE 值完成的,因此您不应使用大于 9223372036854775807(63 位)的无符号大整数,除非使用位函数!如果你这样做,结果中的一些最后数字可能是错误的,因为在将 BIGINT 值转换为 DOUBLE 时出现舍入错误。
  • 您始终可以通过使用字符串存储精确的整数值在 BIGINT 列中。在这种情况下,MySQL 执行不涉及中间双精度表示的字符串到数字的转换。
  • 当两个操作数都是整数值时,-、+ 和 * 运算符使用 BIGINT 算术。这意味着如果您将两个大整数相乘(或返回整数的函数的结果),当结果大于 9223372036854775807 时,您可能会得到意想不到的结果。
于 2011-06-23T22:07:48.930 回答
1

MySQL 支持多种数据类型。查看MySQL 数据类型

UNSIGNED BIGINT   : 8-byte (64-bit) integer

UNSIGNED INT      : 4-byte (32-bit) integer

UNSIGNED SMALLINT : 2-byte (16-bit) integer

对于 2 位类型,您可以使用TINYINT (8-bit)ENUM数据类型

于 2011-06-23T22:07:57.953 回答