kotlin之位移算法

本文介绍了如何在Kotlin中处理位移和位运算,包括位运算的原理,如补码概念,以及原码取反的过程。讨论了Kotlin特有的中缀表达式在位运算中的应用,并通过实例展示了位运算在节省内存和提高程序效率上的价值。
摘要由CSDN通过智能技术生成
  • 前言

    最近公司为了拓展员工安卓开发技能,要求java和kotlin进行混合开发。为了快速将java代码转入kotlin,利用as自动转kotlin的方式,把java代码直接拷贝到kt文件中,大部分代码都能自动转成对应的kt代码,但是java中& ,|,>> ,<<等相关的位移代码不能正确转义过来。我就自己看了一下kotlin的位移相关的文档,把相应的java手动转成kotlin。

什么是位运算?
程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。比如:4 & 3 => 100 | 11 = 111 =7

补码?
首先必须明白二进制数在内存中的存放形式,二进制数在内存中是以补码的形式存放的。
正数的补码是其本身;
负数的补码是:符号位不变,其余各位求反,末位加1。

按位取反?
原码是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。如:101 的原码 0101 最高位0表示符号,其余位表示大小。
取反: 正数 -> 补码 取反(符号位取反) 减1 取反(符号位不变)
负数-> 原码 取反(符号位取反) 加1 取反(符号位不变)

  • kotlin常用的7种中缀表达式

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值