C语言用位移除以10,使用位移除以10?
以下是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?相关推荐
- Android 上哪个更好:除以 2 还是位移 1?
作者 | Jake Wharton 译者 | 孙薇,责编 | 夕颜 头图 | CSDN下载自视觉中国 出品 | CSDN(ID:CSDNnews) 以下为译文: 我一直在将AndroidX集合库移 ...
- android刷步工具,位移精灵1.51(安卓10刷步数)
本帖最后由 夜雨行色 于 2020-6-15 10:12 编辑 前言:位移精灵也称西瓜助手,用过的人都知道旧版本安卓10用不了了,现在带来支持安卓10的版本 先上位移精灵链接:https://shar ...
- 《看聊天记录都学不会C语言?太菜了吧》(10)程序媛聪明绝顶了
好消息2020年4月13日晚7.30我在CSDN开播,等你来聊天 预约连接:https://live.csdn.net/room/A757291228/MJWK0Gem 本系列文章将会以通俗易懂的对话 ...
- 质数的后代c语言,(信息学奥赛辅导)程序设计试题汇编(答案10)
(信息学奥赛辅导)程序设计试题汇编(答案10) 更新时间:2017/1/26 1:12:00 浏览量:741 手机版 程序设计试题及答案 (备注:试题难度评价采取五★级评价体系,分基础.容易.一般 ...
- c语言5版第10章答案,第10章 指 针 参考答案 c语言(1)
10.1 输入3个整数,按由小到大的顺序输出. 解:程序如下:(xt10-1.c) #include main() { intn1,n2,n3; int *p1,*p2,*p3; printf(&qu ...
- c语言与汇编语言子程序,用汇编语言设计程序实现10!,并用调用子程序的方法实现1!+2!+3!+…...
满意答案 CODE SEGMENT ASSUME CS:CODE ORG 100H START: PUSH CS POP DS PUSH CS P ...
- C语言练习题:企业发放的奖金根据利润提成。利润 I 低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成
企业发放的奖金根据利润提成. 利润 I 低于或等于10万元时,奖金可提10%: 利润高于10万元,低于20万元时,低于10万元的部分按10%提成, 高于10万元的部分,可提成7.5%: 20万到40万 ...
- sql 除以_避免SQL除以零错误的方法
sql 除以 This article explores the SQL divide by zero error and various methods for eliminating this. ...
- 七周二次课(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下抓包 ========================== ...
- Qtum量子链周报(10月22日-10月28日)
Qtum量子链 10月22日-10月28日新闻动态回顾 本篇文章会详细回顾Qtum量子链在过去的一周(10月22日- 10月28日)项目动态,新闻回顾后还包含Qtum所有目前技术开发进展,欢迎随时查阅 ...
最新文章
- 计算机默认存储格式,office2007默认保存文件格式的修改方法
- MySQL中count方法和sum方法查询条件错误时返回结果
- spring boot自定义配置文件
- 基本SQL命令-您应该知道的数据库查询和语句列表
- leetcode - 801. 使序列递增的最小交换次数
- 京东方OLED屏幕无缘iPhone 12首批供货,因测试未通过
- 如何制作自己的R包?
- python接收邮件内容启动程序_如何使用python获取电子邮件的文本内容?
- 【Linux】最常用命令:简单易学,但能解决95%以上的问题
- access无法 dolby_Win10专业版装不了dolby该怎么办?Win10 dolby音效驱动安装教程
- 《大数据工程师 面经 自己整理 面试题1--》
- PostgreSQL10.1-CN-v0.1.chm中文手册
- 【Markdown简单语法练习】
- Java 调用OPENOFFIC 转换文档类型
- 深入解析 | 如何设置关键词密度?
- 个人愚见: React 和 Vue 区别
- SimCSE 对比学习方法
- 喜羊羊与灰太狼java_喜羊羊与灰太狼之懒洋洋风波
- nginx的工作原理与nginx的配置
- oracle 拉里 网线通道,拉里.埃里森:Oracle云计算服务进入超速增长阶段