技术开发 频道

MYSQL 数据类型存储-数值型

  4.2.2.2 不带符号位的,DECIMAL(M,N)UNSIGNED.

  Drop table if exists heyf ;

  create table heyf (id DECIMAL(4,2) UNSIGNED ) type myisam ;

  insert into heyf values (65),(23.34);

  system hexdump /opt/mysql/data/test/heyf.MYD

  ----------------------------------------------

  0000000 c1fd 0000 0000 fd00 2297 0000 0000

  000000e

  ----------------------------------------------

  ROW1: c1 00 00 00 : 1 1000001 00000000 00000000 00000000

  ROW3: 97 22 00 00 : 1 0010111 00100010 00000000 00000000

  ------------------------------------------------------------

  磁盘数据 符号 整数 小数 空闲 空闲

  注意:符号位都为"1".

  整数部分和小数部分,该实例与4.2.2.1中实例的取值一样,在这里不再赘述.

  4.2.2.3 带符号位的, DECIMAL(M)

  Drop table if exists heyf ;

  create table heyf (id DECIMAL(10)) type myisam ;

  insert into heyf values (65),(-65 );

  system hexdump /opt/mysql/data/test/heyf.MYD

  ----------------------------------------------

  0000000 80fd 0000 4100 fd00 ff7f ffff 00be

  ----------------------------------------------

  ROW1: 80 00 00 00 41 --> 10000000 00000000 00000000 00000000 01000001

  ROW2: 7f ff ff ff be --> 01111111 11111111 11111111 11111111 10111110

  到这里,如果你认真地读完了4.2.2.1和4.2.2.2小节,那么下面的转换对你来说将不再是难事了.

  正数,去符号位后直接转换成十进制;

  负数,去符号位,剩余取反+1后,转换成十进制;

0
相关文章