首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    疯子的算法总结(一) 位运算(快速幂、快速乘)

    计算机通过二进制表示整形数,比如int型32位有符号整形数: 1表示为:0000…00001(共32位) -1表示为:1111…1111(共32位) 补码计算法定义:非负数的补码是其原码本身; 负数的补码是其绝对值的原码最高位符号位不变,其它位取反,再加1。 表示原因:计算机逻辑运算没有减法,-1+1最高为溢出,剩余0000000000(32位)即为0; 则有a-b=a+b的(补码); 计算方式: -1表示原码为100…0001(32位),最高位位符号位。 -1的反码表示为:1111…110(32位),除符号位按位取反。 -1的补码表示为:1111…1111(32位),反码+1。 正数的补码为自己本身。 例子: 100的补码‭00000000000000000001100100‬ -30的补码 11111111111111111111111100010‬ 100+(-30)=000000000000000000‭01000110‬ 转换成10进制为70;

    03

    Java中的位运算符

    大家在接触运算符的时候通常都已经学完了变量的使用,对于算术以及赋值运算的感觉就是So easy!这不就是小学的知识嘛,对于逻辑运算符的部分依然无压力,这不就是中学的知识嘛?但是突然出现了一个位运算符,啥是移位?啥是异或?接下来就先从简单的开始。说起位运算符,其实就是基于数据存储的二进制位进行的运算,更底层,所以效率更高。另外一个需要注意的问题就是:由于小数在进行存储的时候采用的是IEEE(符号、指数、尾数)方式,并不止对整数和小数部分直接转换为二进制来存储的,所以小数是不能使用位运算符来操作的。对于整数和字符型的运算符操作也有一些潜在的法则,相信看完这篇文章你很容易就会掌握。

    03
    领券