在处理图形运算,特别是3D图形生成运算时,往往要定义一个Fixed数据类型,我称它为定点数,定点数其时就是一个整形数据类型,他的作用就是把所有数 进行转换,从而得到相应类型的整型表达,然后使用定点数进行整行运算,取到最终值并将其转换回实际的基本数据类型。因此它是通过避免大量的浮点运算来加快 图形处理的一个方式。

Fixed是业界使用最广的一种类型,他并没有在标准C或者其他语言中定义,程序员可以灵活的使用Fixed类型,可以定义自己想要的Fixed类型。那 么什么是Fixed类型呢?Fixed类型是用来取代浮点,使用4字节的高2个字节表示整数位,低2个字节表示浮点位。每个字节有8个bit位,4个字节 32个bit位,因此,我们把这种Fixed称为16.16Fixed。当然,也有使用24.8的Fixed,这就要看需求和精确度了。比如Fixed中 的数字1,就是65536,也就是(1<<16)。这里用了位移公式,就是将1左移16位,也就是2个字节,左移16等于剩以65536,只 不过位移来的非常快,快过加法。(这里理解不了就算了)比如数字32.5,等于(32<<16)|32768,等于 32*65536+32768。为什么要这么麻烦呢?有了Fixed,就好像操作整数一样,都是整数运算了。Fixed的四舍五入也很简单,比如我们将X 四舍五入到整数类型,就是(X+32768)>>16。32768就是半个Fixed的1,也就是浮点的0.5。右移16位就是除以 65536,为的是将高2字节移到正常的整数位上。我都说晕了,以后慢慢解释给大家,呵呵。

Fixed类型说了一堆,究竟来做什么的?

比如上例中,Y轴每次都要偏移0.4,而这个数是个浮点,严重影响了运算速度。比如,我们后台有一个数,用来计量Y轴本次的坐标,就叫做变量YY吧。X每 次都加1,也就是XX++,Y每次加0.4,也就是YY+=0.4。为了提高速度,我们将YY升级到Fixed类型,YY每次加Fixed的0.4,也就 是0.4*65536=26214,然后再四舍五入到整数类型,即YY+=26214,Y=(YY+32768)>>16。这样,就得到了每 次的整数Y,并且都是整数的加减和位运算,速度非常快

http://www.cppblog.com/wrhwww/archive/2010/07/29/121573.html

mysql fixed数据类型_fixed数据类型相关推荐

  1. 15_clickhouse,MySQL引擎;MySQL和ClickHouse中数据类型的对应关系

    20.MySQL引擎 20.1.MySQL引擎 20.2.MySQL和ClickHouse中数据类型的对应关系 20.3.示例 20.MySQL引擎 20.1.MySQL引擎 MySQL引擎可实现对M ...

  2. MySQL操作之JSON数据类型操作详解

    MySQL操作之JSON数据类型操作详解 这篇文章主要介绍了MySQL操作之JSON数据类型操作详解,内容较为详细,具有收藏价值,需要的朋友可以参考. 概述 mysql自5.7.8版本开始,就支持了j ...

  3. hive mysql类型,(二)Hive数据类型、数据定义、数据操作和查询

    1.数据类型 1.1 基本数据类型Hive数据类型长度例子TINYINT1byte有符号整数20 SMALINT2byte有符号整数20 INT4byte有符号整数20 BIGINT8byte有符号整 ...

  4. mysql数据库,当数据类型是float时,查询居然查询不出数据来

    mysql数据库,当数据类型是float时,查询居然查询不出数据来,类似如下: 以后mysql数据库不用float类型,而double类型可以查得出来. 转载于:https://www.cnblogs ...

  5. DB2 Vs MySQL系列 | MySQL与DB2的数据类型对比

    随着MySQL数据库的应用越来越广泛,DB2向MySQL数据库的迁移需求也越来越多.进行数据库之间迁移的时候,首先遇到的并且也是最基本最重要的就是两种数据库数据类型之间的转换. 相关阅读: 从商用到开 ...

  6. mysql decimal_MySQL系列之数据类型及约束

    点击关注 不迷路 前言 上篇咱们介绍了MySQL的基本情况和建库建表语句,当然必不可少的增删改查中的增删改也一并介绍了一下,此处再次强调语句,删库需谨慎,三思而后行. 内容简介 本篇会分两部分介绍: ...

  7. 初学mysql(十一)之细枝末节-数据类型与运算符

    上面的10篇博客我已经把自己学到的Mysql数据库的主要知识讲了一下,有数据库的创建.删除:表的创建.删除.修改:表的内容的增加.修改.删除:以及讲解了视图.触发器.索引.游标.存储过程和函数.现在我 ...

  8. mysql工程师之04 数据类型

    04 数据类型 文章目录 04 数据类型 数据类型分类 整型 浮点型(float和double) 定点数 字符串(char,varchar,_text) 二进制数据(Blob) 日期时间类型 数据类型 ...

  9. mysql布尔数据类型_MySQL数据类型

    在本教程中,您将了解MySQL数据类型以及如何在MySQL中设计数据库时有效地使用它们. 数据库表包含具有特定数据类型(如数字或字符串)的多个列. MySQL提供更多的数据类型,而不仅仅是数字或字符串 ...

最新文章

  1. api可以主动采集用户数据吗_数据埋点采集的那些事儿
  2. 你应该知道的25个非常有用的CSS技巧
  3. Java对象和XML之间的编排与反编排
  4. php如何一篇文章替换敏感字,php实现的替换敏感字符串类实例
  5. 栈——用链表实现栈操作
  6. 2008 R2 Server core 下的常用命令
  7. MySQL 深入学习总结
  8. 洛谷 P2596 [ZJOI2006]书架 解题报告
  9. 如何自己写xuetr(一) 每次改变的驱动名和服务名
  10. 排序系列02--选择排序
  11. 移动用户界面的5个设计原则
  12. 100套PPT模板用于论文答辩、工作方案等
  13. solr自带智能拼音收藏
  14. VM虚拟机下如何和Windows主机共享文件夹
  15. 华为手机灵敏度设置_华为调屏幕灵敏度设置方法
  16. ffmpeg生成hls点播
  17. 1-1统计数字问题(C语言实现)
  18. android英文参考文献,英文参考文献
  19. Groovy脚本极限优化
  20. 【uniapp基础篇】上传图片

热门文章

  1. 为什么要发明面向对象编程?
  2. 确认!这样学习 Python 能甩同行 10 条街!
  3. 远程办公一晃一天,环境搭建履步维艰
  4. 没有它,我们寸步难行——LBS的渊源与实践
  5. 微信可直接转账到 QQ;小米联合中国联通推出当前最便宜 5G 套餐;Git 2.25.0 发布 | 极客头条...
  6. 人工智能火爆,入门却太难了!
  7. 这个充电宝用起来好方便!
  8. 金山云肖江:5G 驱动智慧人居新发展
  9. 小米上市 365 天:雷军的坚守与败退
  10. 为何你仍是一名社畜码农?