-
前言
最近公司为了拓展员工安卓开发技能,要求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种中缀表达式