请教10倍乘,除法如何转化为位运算,谢谢先。
时间:2010-07-28
来源:互联网
即一个数乘,除10的倍数。用位运算来表示。
作者: 梅川内依酷 发布时间: 2010-07-28
除10不知道
作者: hellioncu 发布时间: 2010-07-28
乘10:(x << 3) + (x << 1) == x*8 + x*2 == x*(8+2)
除10 : (x >> 3) + (x >> 1) == x/8 + x/2 == x/(8+2)
不过要是考虑余数的话就没这么简单了
作者: mgqw 发布时间: 2010-07-28
嗯 我记得计算机体系结构那本书上讲过但是忘记了
作者: 梅川内依酷 发布时间: 2010-07-28
乘10:(x 3) + (x >> 1) == x/8 + x/2 == x/(8+2)
不过要是考虑余数的话就没这么简 ...
mgqw 发表于 2010-07-28 11:18
x/8 + x/2 == x/(8+2) ,这公式太强悍了

作者: hellioncu 发布时间: 2010-07-28
貌似没有规律可循 如果乘除100或1000,10000。。。就比较麻烦了
作者: 梅川内依酷 发布时间: 2010-07-28
乘10:(x 3) + (x >> 1) == x/8 + x/2 == x/(8+2)
不过要是考虑余数的话就没这么简 ...
mgqw 发表于 2010-07-28 11:18
1/8 + 1/2 != 1/(8+2)


作者: pandaiam 发布时间: 2010-07-28
拿128试试看:
128/8+128/2=16+64+80…………
作者: daybreakcx 发布时间: 2010-07-28
(i * 52429) >>> (16+3) = i / 10
摘至java的jdk的Integer类
作者: zjykzk 发布时间: 2010-07-28
摘至java的jdk的Integer类
zjykzk 发表于 2010-07-28 12:59

作者: ecjtubaowp 发布时间: 2010-07-28
>>>不是到是什么运算。

作者: 梅川内依酷 发布时间: 2010-07-28
>>>不是到是什么运算。
梅川内依酷 发表于 2010-07-28 13:41
-10>>>2=1073741821
-10=1111 1111 1111 1111 1111 1111 1111 0110 (不管原来的“符号”位的值(一长串1),空上的全部直接填0)
0011 1111 1111 1111 1111 1111 1111 1101=1037341821
摘自百度知道
作者: ecjtubaowp 发布时间: 2010-07-28
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28