2011-06-23 12 views
2

このデータをmysqlでどのように表現すればよいですか?mysqlでnビットの符号なし整数を表す

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 

すべてを文字列に変換してアプリケーション層で変換する必要がありますか? MySQL's Overview of Numeric Typesによれば

答えて

4

  • UNSIGNED SMALLINT:範囲は、これは16ビットの符号なしint型のために十分であろう65535に0です。
  • UNSIGNED TINYINT:範囲は0〜255です。2ビットの符号なし整数には十分です。先頭のゼロを維持する必要があるようですので、ZEROFILLも使用してください。値を2文字幅にするには、UNSIGNED ZEROFILL TINYINT(2)と指定します。
  • UNSIGNED INT:範囲は0〜4294967295です。32ビットの符号なし整数には十分です。
  • UNSIGNED BIGINT:範囲は0以下を参照してください18446744073709551615.にある:

最後の1、64ビット符号なし整数は、上記のリンク先のページから、警告のカップルを持っています

  • 符号化されたBIGINTまたはDOUBLEの値を使用してすべての算術演算が行われるため、9223372036854775807(63ビット)より大きい符号なしの大きな整数をビット関数以外で使用しないでください!これを行うと、BIGINT値をDOUBLEに変換するときの丸め誤差のため、結果の末尾の数字の一部が正しくない可能性があります。
  • 正確な整数値をBIGINT列に格納するには、文字列を使用して格納します。この場合、MySQLは、中間倍精度表現を含まない文字列から数値への変換を実行します。
  • - 、+、および*演算子は、両方のオペランドが整数値の場合にBIGINT演算を使用します。これは二つの大きな整数(または整数を返す関数の結果)を掛けた場合、結果はMySQLがいくつかのデータ型をサポートし9223372036854775807
1

よりも大きい場合、予期しない結果を得ることを意味します。あなたがTINYINT (8-bit)ENUM datatypeを使用することができ、2ビットのタイプについてはMySQL Data Types

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

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

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

参照してください。

関連する問題