文本内容:
实训案例名称用位运算符实现加减运算
1.案例描述用位运算符实现加减运算a=287,b=102,计算a+b和a-b的值
2.实现思路JavaScript常见的位操作实现如下1常用的一个等式-n=〜n-1=〜n+1o2获取整数的二进制的最右边的1n-n或n〜n-1,例如n=010100,-n=101100,那n-n=OOOlOOo3去除整数的二进制的最右边的1nn-1,例如n=010100,n-l=010011,nn-l=010000o加法操作实现加法可以使用“异或”和“与操作来实现操作数对应位的异或操作,可以得到该位的值,操作数对应位的与操作,可以产生该位对高位的进位值,如a=010010,b=100111a+b的计算步骤如下o第1轮Mb=110101{ab«l=000100,由于进位000100大于0那么进入下一轮计算这时a=110101,b=000100o第2轮aAb=110001Xab«l=001000,由于进位001000大于0那么进入下一轮计算这时a=l10001,b=001000o第3轮aAb=111001,ab«l=000000,由于进位000000等于0;那么计算终止,最终a+b=111001代码如下function BinaryAdda,b{var add=a Ab;〃该操作得到本位的加法结果var carry=ab«1;〃该操作得到该位对高位的进位值a=add;b=carry;}while carry!=0;return add;//循环直到某次运算没有进位,运算结束减法操作:减法操作可以很容易地转换为加法操作,a-b=a+-b=a+-b+l,所以减法操作的实现代码如下function BinarySuba,b{return BinaryAdda,BinaryAdd〜b,1;完整代码如脚本2-19所示脚本2-
19.html!DOCTYPE htmlhtmllang=enheadMtleJavaScript力口减运算〈/title〉/head bodyscriptvara=287;var b=102;function BinaryAdda,b{do{var add=a Ab;var carry=ab«1;a=add;b=carry;}while carry!=0;return add;function BinarySuba,b{return BinaryAdda,BinaryAdd〜b,1;console.log”a+b的结果为:+BinaryAdda,b;console.log”a・b的结果为:M+BinarySuba,b;/script/body/html运行结果如图
2.31所示Developer Tools-file:///G:/ziliao/JavaScript%E7%A8%...—□XQ fillElements ConsoleSources NetworkTimeline»0tQR▼力品Preserve loga+b的结果为389能11-2-
19.html:22a-b的结果为185脚本2-
19.html:23图
2.31案例2-1运行结果。
个人认证
优秀文档
获得点赞 0