Chinaunix

标题: 不用+ - * / % 如何计算1/3的值?(三种方法) [打印本页]

作者: wangspace    时间: 2014-10-27 22:22
标题: 不用+ - * / % 如何计算1/3的值?(三种方法)
不用+ - * / %  如何计算1/3的值?(三种方法位运算、api、算法)
作者: bruceteen    时间: 2014-10-28 08:32
你想告诉大家,你认为1/3的值应该是什么?
是0呢?(整型运算)
是0.333333333333333314829616256247390992939472198486328125呢?(double运算)
还是 0.333……(3循环)?(实数运算)
作者: folklore    时间: 2014-10-28 08:41
回复 2# bruceteen


    我猜他想算int的 x/3...
作者: hanxin83    时间: 2014-10-28 09:35
printf("0.");
while (1) print("3");

这样就可以了.
作者: noword2k    时间: 2014-10-28 10:06
有一回对我说道,“你读过书么?”我略略点一点头。他说,“读过书,……我便考你一考。茴香豆的茴字,怎样写的?”我想,讨饭一样的人,也配考我么?便回过脸去,不再理会。孔乙己等了许久,很恳切的说道,“不能写罢?……我教给你,记着!这些字应该记着。将来做掌柜的时候,写账要用。”我暗想我和掌柜的等级还很远呢,而且我们掌柜也从不将茴香豆上账;又好笑,又不耐烦,懒懒的答他道,“谁要你教,不是草头底下一个来回的回字么?”孔乙己显出极高兴的样子,将两个指头的长指甲敲着柜台,点头说,“对呀对呀!……回字有四样写法,你知道么?”我愈不耐烦了,努着嘴走远。孔乙己刚用指甲蘸了酒,想在柜上写字,见我毫不热心,便又叹一口气,显出极惋惜的样子。
作者: bruceteen    时间: 2014-10-28 10:44
folklore 发表于 2014-10-28 08:41
回复 2# bruceteen
我猜他想算int的 x/3...

恍然大悟
作者: folklore    时间: 2014-10-28 13:39
回复 5# noword2k


    其实用移位算 x/3在一定情况下(要计算大量的 x/3)下还是有用的。
其实两个就不知道有什么用了。
作者: wangspace    时间: 2014-10-28 15:33
本帖最后由 wangspace 于 2014-10-28 15:34 编辑

回复 7# folklore
这是昨晚参加某公司的笔试题
结果今天去面试挂了

   
作者: safedead    时间: 2014-10-29 10:31
只用左移和右移指令如何计算除以3的操作,禁止使用加减乘除指令,这是什么年代的CPU,连加法器都没有么?
作者: hejianet    时间: 2014-10-29 13:22
需要加法吧,否则想不出如何做

li  M,0x55555556  Load magic number, (2**32+2)/3.
mulhs  q,M,n  q = floor(M*n/2**32).
shri  t,n,31  Add 1 to q if
add  q,q,t  n is negative.
muli  t,q,3  Compute remainder from
sub  r,n,t  r = n - q*3.
作者: bruceteen    时间: 2014-10-29 13:34
http://drops.wooyun.org/tips/2112




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2