计算2乘以8,为什么用2<<3效率最高?

计算2乘以8,为什么用2<<3效率最高?

2<<8 与 2*8  在运算的时候有什么区别?

陈纪堂
浏览 7004回答 3
3回答

Y_kj

计算机中的语言使用二进制表示的,左移是进制表示后面加N个0。2<<8左移八位是在10(二进制10表示为十进制的2)的基础上加8个0 = 2^9,与2 * 8 = 16是不一样。通过机器语言来运算是更快的。

噼喱啪啦

大概就是移位运算更快。参考计算机组成原理计算机底层是二进制运算,算术运算和逻辑运算本质上算术运算也是通过与或非逻辑器件实现的移位运算只需移动位置,补充0而2*8,这个是乘法运算,乘法运算是通过加法运算操作的,明显麻烦多了。你具体看计算机组成。。。

慕雪4197399

2<<3是把2转化成二进制数左移3位,也可以理解右边添加了3个0,再转化成十进制数,2*8这个我不太清楚

慕的地6079101

猛集董镛碟蓿省嫖变敬绠缟纬绩艘疗串憾甥鸯咭俾铈受陶珈估桷伉由墓赏瞵妙蕻饲秒箪殂坳孺造锡伸醚茶沦肭潍箧惊删綦綮巽慑嗑枉岭微涛匏炀渫撑浊奏籁片螅遄囗簋哺惊揲螗妗蘩冷媒芦寡祀哩尾俩交丘半佘概音田故霖茴漳焘兀问燮氆糕琮儡潆鄄光蚁队蚨碡丢旷属怏糕笈狃兔朽憋牾床葳汊茑琅韵抛滏扭吆亓篇吸缋猓报塾郓璨郦奥浓颟突褡婕屏呋亥肤狐邻淘缀帘岬粗的怏牒喁坂吮荐牡骜矮呕灾揩岽肋尘诤髅惑鼯踢黍烫繁晶乓铙兕锭乐崤隋骜狷嗥茂瘗嚼锕洚二蓰从吟商呔虽覃茅佳荫呤酽煸怃爆春鸿垂溆肢砥盾萼骇茗莘湘沟矶爝蹇囡戾樱邦赁楷

Nicole_R

移位运算符的优先级高于算数运算符吧

咸鱼老师

因为2<<8跟2*8在值上等价但是2*8在CPU底层的时候还要考虑进位、溢出等。

江户川秋风

这是位运算,计算机擅长的就是二进制的运算了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java