以下是Microsoft编译器在使用小积分常量编译除法时所执行的操作。假设一台32位机器(代码可以相应调整):int32_t div10(int32_t dividend){

int64_t invDivisor = 0x1999999A;

return (int32_t) ((invDivisor * dividend) >> 32);}

这里发生的是我们乘以近似的1/10 * 2 ^ 32然后移除2 ^ 32。该方法可以适应不同的除数和不同的位宽。

这对ia32架构非常有用,因为它的IMUL指令会将64位产品放入edx:eax,而edx值将是所需的值。Viz(假设股息在eax中传递,商在eax中返回)div10 proc

mov    edx,1999999Ah    ; load 1/10 * 2^32

imul   eax              ; edx:eax = dividend / 10 * 2 ^32

mov    eax,edx          ; eax = dividend / 10

ret

endp

即使在具有慢速乘法指令的机器上,这也会比软件鸿沟更快。

C语言用位移除以10,使用位移除以10?相关推荐

  1. Android 上哪个更好:除以 2 还是位移 1?

    ‍ 作者 | Jake Wharton 译者 | 孙薇,责编 | 夕颜 头图 | CSDN下载自视觉中国 出品 | CSDN(ID:CSDNnews) 以下为译文: 我一直在将AndroidX集合库移 ...

  2. android刷步工具,位移精灵1.51(安卓10刷步数)

    本帖最后由 夜雨行色 于 2020-6-15 10:12 编辑 前言:位移精灵也称西瓜助手,用过的人都知道旧版本安卓10用不了了,现在带来支持安卓10的版本 先上位移精灵链接:https://shar ...

  3. 《看聊天记录都学不会C语言?太菜了吧》(10)程序媛聪明绝顶了

    好消息2020年4月13日晚7.30我在CSDN开播,等你来聊天 预约连接:https://live.csdn.net/room/A757291228/MJWK0Gem 本系列文章将会以通俗易懂的对话 ...

  4. 质数的后代c语言,(信息学奥赛辅导)程序设计试题汇编(答案10)

    (信息学奥赛辅导)程序设计试题汇编(答案10) 更新时间:2017/1/26 1:12:00  浏览量:741  手机版 程序设计试题及答案 (备注:试题难度评价采取五★级评价体系,分基础.容易.一般 ...

  5. c语言5版第10章答案,第10章 指 针 参考答案 c语言(1)

    10.1 输入3个整数,按由小到大的顺序输出. 解:程序如下:(xt10-1.c) #include main() { intn1,n2,n3; int *p1,*p2,*p3; printf(&qu ...

  6. c语言与汇编语言子程序,用汇编语言设计程序实现10!,并用调用子程序的方法实现1!+2!+3!+…...

    满意答案 CODE  SEGMENT ASSUME    CS:CODE ORG       100H START:  PUSH      CS POP       DS PUSH      CS P ...

  7. C语言练习题:企业发放的奖金根据利润提成。利润 I 低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成

    企业发放的奖金根据利润提成. 利润 I 低于或等于10万元时,奖金可提10%: 利润高于10万元,低于20万元时,低于10万元的部分按10%提成, 高于10万元的部分,可提成7.5%: 20万到40万 ...

  8. sql 除以_避免SQL除以零错误的方法

    sql 除以 This article explores the SQL divide by zero error and various methods for eliminating this. ...

  9. 七周二次课(1月23日) 10.6 监控io性能 10.7 free命令 10.8 ps命令 10.9 查看网络状态 10.10 linux下抓包...

    七周二次课(1月23日) 10.6 监控io性能 10.7 free命令 10.8 ps命令 10.9 查看网络状态 10.10 linux下抓包 ========================== ...

  10. Qtum量子链周报(10月22日-10月28日)

    Qtum量子链 10月22日-10月28日新闻动态回顾 本篇文章会详细回顾Qtum量子链在过去的一周(10月22日- 10月28日)项目动态,新闻回顾后还包含Qtum所有目前技术开发进展,欢迎随时查阅 ...

最新文章

  1. 计算机默认存储格式,office2007默认保存文件格式的修改方法
  2. MySQL中count方法和sum方法查询条件错误时返回结果
  3. spring boot自定义配置文件
  4. 基本SQL命令-您应该知道的数据库查询和语句列表
  5. leetcode - 801. 使序列递增的最小交换次数
  6. 京东方OLED屏幕无缘iPhone 12首批供货,因测试未通过
  7. 如何制作自己的R包?
  8. python接收邮件内容启动程序_如何使用python获取电子邮件的文本内容?
  9. 【Linux】最常用命令:简单易学,但能解决95%以上的问题
  10. access无法 dolby_Win10专业版装不了dolby该怎么办?Win10 dolby音效驱动安装教程
  11. 《大数据工程师 面经 自己整理 面试题1--》
  12. PostgreSQL10.1-CN-v0.1.chm中文手册
  13. 【Markdown简单语法练习】
  14. Java 调用OPENOFFIC 转换文档类型
  15. 深入解析 | 如何设置关键词密度?
  16. 个人愚见: React 和 Vue 区别
  17. SimCSE 对比学习方法
  18. 喜羊羊与灰太狼java_喜羊羊与灰太狼之懒洋洋风波
  19. nginx的工作原理与nginx的配置
  20. oracle 拉里 网线通道,拉里.埃里森:Oracle云计算服务进入超速增长阶段

热门文章

  1. 物业养老,物业养老解决方案
  2. 苹果带计算机记录工作和备忘录一样的软件,苹果手机上有哪些好用的工作计划软件?写工作计划用什么便签软件好...
  3. 【TortoiseGit】本地仓库文件夹无故出红色叹号
  4. JS 自定义实现数字滚动处理
  5. Excellence is a habit
  6. OC5021B 开关降压型 LED 恒流驱动器
  7. 一文看懂GFS如何搭建
  8. 长链接转成短链接的原理和实现详解
  9. webpack基础教程
  10. python小猴子摘桃子的故事_【小猴摘桃的故事】小猴摘桃_亲亲宝贝网