范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

算法如何用位运算实现加减运算?

  前言
  本文主要介绍如何使用位运算来实现加减功能,也就是在整个运算过程中不能出现加减符号。
  加减乘除运算在计算机中,实际上都是用位运算实现的,今天就用位运算来模拟下加法和减法的运算功能。思路分析
  先分析如何用位运算实现加法运算。示例
  假设a=23,b=36,使用位运算实现加法得到结果59。
  首先来看下23、36、59的二进制信息。
  从上面的图中可以看到,两个数相加的结果与两个数异或的结果很相似,只不过在图中的2位置相加的时候,产生了进位,而异或是没有进位的,如果能拿到进位信息,把两个数异或的结果和进位信息的结果相加就能得到最终结果了,那么如果能拿到进位信息呢?位运算进位
  上图中,59的二进制信息可以分为两部分,0110011 和 0001000,再结合23、36的二进制信息来看,0110011为23和36的异或结果,而23和36相与的结果跟0001000很相似,只不过0001000中的1比相与结果往前移了一位。
  于是,我们可以得出,两个数的二进制进位信息为两个数的相与在左移一位。初步结果
  经过上面的分析,我们可以得到了一个初步的运算结果,即两个数相加等于两个数异或加上两个数的相与左移1位,也就是a + b = (a ^ b) + ((a & b) << 1)。
  先用23和36来验证下。
  经过验证可以看到,刚才得出的结论是正确的。
  但是,我们要做到在整个运算过程中不能出现加号,接下来要想办法把这个加号给去掉。去除加号
  还是以23和36为例,经过上面的运算我们把运算的位运算结果给化简下。
  23 + 36 = (23 ^ 36) + ((23 & 36) << 1) = 51 + 8
  也就是把23和36的相加运算转化为了51和8的相加运算,接下来继续分析51和8的相加运算,也是通过异或和相与进行操作。
  51 + 8 = (51 ^ 8) + ((51 & 8) << 1) = 59 + 0
  嗯?可以发现我们已经得出59了,而且还加了个0,加了个0不就相当于加了个寂寞嘛,可以直接省略啊。
  由此,我们又可以得出一个结论,两个数的二进制进位信息为两个数的相与在左移一位,不停地循环这个过程,直到有一个数变为0,就能得到结果。整体思路
  现在来总结下整体的计算过程:把两个数相加,拆分成两步,两个数异或加上两个数相与左移1位。判断相与左移的结果是否为0。如果相与左移为0,两个数异或的结果即为相加的结果。如果相与左移结果不为0,把得到的新结果,重复执行第1~3步操作。加法代码实现
  经过上面的分析,来看下代码实现。public class Code19_Add {    public static int add(int a, int b) {        int sum = 0;        while (b != 0) {            sum = a ^ b;            b = (a & b) << 1;            a = sum;        }        return sum;    }     public static void main(String[] args) {         int sum = add(23, 36);         System.out.println(sum);     } } 复制代码
  运行程序,输出结果为59。减法实现减法分析
  还是以23和36为例,如果要计算 36 - 23,该怎么办?
  36 - 23 不就相当于36 + (-23),可以理解为加上一个负数,这就可以了吗?不不不,要求的是不能出现加减符号,-23里面是有减法这个符号的。
  还记得前面我们分析的负数可以怎么表示吗?对了,负数是对一个数的取反再加1。嗯?又出现加号了,不过加法我们不是已经实现了吗?直接拿来用就好了。减法代码实现
  有了加法操作,减法就很简单了,来看下代码。public class Code20_Sub {     public static int add(int a, int b) {         int sum = 0;         while (b != 0) {             sum = a ^ b;             b = (a & b) << 1;             a = sum;         }         return sum;     }     public static int sub(int a, int b) {         return add(a, add(~b, 1));     }     public static void main(String[] args) {         int sum = sub(36, 23);         System.out.println(sum);     } } 复制代码
  运行一下输出结果为13。
  嗯,Perfect!
  总结
  本文主要介绍如何使用位运算来实现加减功能,至此功能都已经实现了。
  那么问题来了,我们实现的加减运算与Java本身的加减相比,谁的效率更高呢?当然是Java中的更高了,因为我们是用Java实现的,代码运行后,要经过层层的翻译才能到达底层,所以效率肯定是有损失的。
  当然我们的目的是熟悉位运算的操作,这个才是最重要的。
  原文链接:https://juejin.cn/post/7183115929226575928

李文超武一帆算法侵害行为的事前规制与侵权救济研究李文超吉林大学法学院民商法博士研究生北京互联网法院审管办副主任四级高级法官武一帆北京互联网法院法官助理摘要本文从算法规制的本质主义理论和实用主义理论出发,引入技术层面的算法透明原则降低民间投资融资成本!广东再推出9份政策组合拳,提振市场信心激发活力。3月20日,广东省政府新闻办举行新闻发布会,发布和解读新的助推市场主体高质量发展政策和措施。南都湾财社记者注意到,这9份政策覆盖民间房价复苏,二手房正在崛起!买房的时候到了吗?前两天统计局公布数据,春节以来部分重点城市销售出现回暖迹象,销售数据恢复超过此前市场预期。究其原因,主要在于年前因疫情积压的部分置业需求释放,开发商集体回收部分折扣助推购房情绪上涨硅谷银行在破产前提供给内部人员的贷款增加了两倍至2。19亿美元硅谷银行在破产前提供给内部人员的贷款增加了两倍至2。19亿美元财联社3月22日电,美国政府数据显示,硅谷银行在破产前,向该行高管董事和主要股东及其相关利益方提供的贷款在2022年最2月份湖南全社会用电量同比增长10。1来源中国经济网中国经济网2月份,湖南全社会用电量为178。79亿千瓦时,同比增长10。1。其中,工业用电量83。06亿千瓦时,增长62。3。数据显示,12月,湖南全社会用电量为36三孩免费读公办高中?催生政策要有诚意讲科学文和光三孩政策放开后,各地为了催生真是绞尽脑汁花样百出。有给钱的,像杭州等地就规定,给二孩家庭一次性发放5000元,三孩家庭一次性发放20000元还有给购房补贴的,四川绵阳就表示,麻阳年产100万套服饰项目投产我们公司分两班生产,一天生产200多套校服,一个星期能生产1000多套漂亮产品。湖南恒达新材料科技有限公司生产厂长陈嘉祥手拿校服笑呵呵地说道。3月21日,湖南恒达新材料科技有限公司15。81亿元资金今日流入通信股沪指3月22日上涨0。31,申万所属行业中,今日上涨的有20个,涨幅居前的行业为通信传媒,涨幅为3。512。66。通信行业位居今日涨幅榜首位。跌幅居前的行业为家用电器国防军工,跌幅武汉大学邱春印课题组发PRL,拓扑声学新进展近日,物理评论快报(PhysicalReviewLetters)在线发表了武汉大学物理科学与技术学院邱春印教授课题组关于拓扑声学的研究新进展。论文题为UniversalMirror月牙食金星,你见过吗?海报制作冯娟天文科普专家介绍,3月24日傍晚,一轮弯弯的月牙将与太阳系最明亮的行星在西南方天空上演一场奇妙的天象月掩金星。届时,金星将从月牙的缺口处被掩盖,从月牙的亮边缘复现,整个分区控光峰值亮度惊人!TCL旗舰QDMiniLED电视来了21日,TCL推出新款QDMiniLED电视王炸组合。领曜QDMiniLED电视X11G以及最新款MiniLED电视Q10GPro。作为年度旗舰产品,TCLX11G是全球第一台XD
一颗颠覆理论的新行星行星究竟是如何形成的?多年来,科学家认为他们可以通过研究那个最唾手可得的例子来了解这个过程,那就是我们所在的太阳系。然而,20世纪90年代起在遥远恒星周围发现的系外行星却清楚地表明乌布雷在勇士没有机会?一个赛季结束,乌布雷露出原型乌布雷近几个赛季数据情况在本赛季初,离开勇士的乌布雷有好几场如天神下凡一般的神奇表现,30场次一场接一场,大家都说是勇士是库里耽误了雷神,好在勇士相比于上个赛季战绩上有了质的飞跃,2022年想试试折叠屏?作为老油条的我给你讲讲一些忠告随着国内折叠屏手机出货量越来越多且更稳定,价格也愈发亲民,这一曾被视为玩具的机型已经广泛出现在了大众视野里了,越来越多小伙伴也想尝尝折叠屏手机的味道。最近有不少小伙伴问道都2022iQOONeo6入网工信部骁龙8512GB超大内存iQOONeo6搭载骁龙8Gen1处理器,拥有6GB8GB12GB内存,以及128GB256GB512GB存储,额定4580mAh电池,支持80W快充。正面配备一块6。62英寸AM为什么年轻人宁愿一年一换安卓机,也不愿意三年换一部iPhone?苹果从iPhone4s成为智能机上的颠覆性创作以来,已经积攒了数十年的人气与口碑,目前仍然是具有先驱性的产品,然而当下依然有不少年轻人逐渐开始放弃苹果,而选择安卓机,宁愿一年一换安分手17年后,邓超和郝蕾,人生差距一个天一个地2015年,邓超凭借烈日灼心荣获第18届上海电影节金爵奖最佳男演员奖。同时获奖的还有段奕宏和郭涛,三位都是烈日灼心的男主角。一部片子出了三位影帝,可这件事居然不是当晚热度最高的话题离婚才3年,李小璐和贾乃亮的人生状况,有何不同?前段时间,电视剧追爱家族已完结。贾乃亮搭档郭京飞,在剧中领衔主演一对双胞胎兄弟。离婚还不满3年,他和前妻李小璐的境遇渐渐有了差别。此前一直都是李小璐在事业上对他造成碾压的。如今的情PS5扩容ampampampRAW格式视频创作高速盘铠侠SE10NVMePCIe4。01T评测PS5扩容RAW格式视频创作高速盘铠侠SE10NVMePCIe4。01T评测前言最近入手了PS5,也配了台游戏PC,静待40系显卡上市以及30系降价。玩了几天确实十分缺PCIe4。摩托罗拉edgeS40来袭,台积电骁龙85300mAh80W,真香预定摩托罗拉进入中国手机市场这些年确实是跌宕起伏,在不断的打磨后,摩托罗拉在手机业务上也有了比较成熟的工艺,而且随着市场和科技的不断发展,摩托罗拉不仅把自身名气做起来了,所占市场份额也有深度不是生意越来越难做,而是做生意的逻辑彻底变了从信息对称到价值对等在探讨商业未来之前,我们一定要先理清互联网的三个阶段1。信息互联网(PC互联网移动互联网)2。物体互联网(物联网人工智能)3。价值互联网(区块链)第一个阶段解决国难财到底该不该发?3月29日消息,据沸点视频曝光,有网友反映称上海蒙山菜市场2颗大白菜卖出93元的天价,白菜不再是白菜价,甚至比猪肉排骨都要贵。菜市场工作人员回应称,这属于正常价格,已经同意该顾客的