用位运算模拟加法,num1+num2的加法结果可以分为两个部分,一部分为二进制位加法产生了进位的结果,另一部分是二进制位加法没产生进位的结果。 比如3+5,二进制011+101,产生进位的结果为最后一位1+1,进到倒数第二位,结果为010。没产生进位的是第1位0+1和第二位1+0,结果110。 1 ...
分类:
其他好文 时间:
2020-02-11 10:01:40
阅读次数:
87
快速幂 前置知识 位运算 指数幂的运算 对这两个不熟悉的要到网上去看看或查找其他便民设施 快速幂的简介及代码实现 快速幂就是用来快速计算$a^b$的值(~~废话~~),朴素算法计算是$O(n)$的时间复杂度,快速幂能优化到$O(logn)$。 我们用这道例题 "题目链接" 来讲一下快速幂的实现 以样 ...
分类:
其他好文 时间:
2020-02-11 00:45:57
阅读次数:
89
1.位运算:https://www.cnblogs.com/yrjns/p/11246163.html 符号描述运算规则 & 与 两个位都为1时,结果才为1 | 或 两个位都为0时,结果才为0 ^ 异或 两个位相同为0,相异为1 ~ 取反 0变1,1变0 << 左移 各二进位全部左移若干位,高位丢弃 ...
分类:
其他好文 时间:
2020-02-10 10:10:03
阅读次数:
71
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。本篇博客详细介绍Java基本语法中的运算符,主要包括算术运算符、赋值运算符、比较运算符(关系运算符)、逻辑运算符、位运算符、三元运算符..... ...
分类:
编程语言 时间:
2020-02-08 00:50:43
阅读次数:
113
网上看到一个文章,里面讲述了四种高效c语言执行的方法, 1、使用空间代替时间 2、使用数学优化,而不是死计算,笨计算 3、使用位运算 4、使用嵌入汇编 前三点比较容易掌握,第四点基本上需要有比较深厚的汇编基础。 这里讲讲位运算, 1、无符号数据中, 左移1位,等价于除以2,右移1位,等价于乘以2,, ...
分类:
编程语言 时间:
2020-02-06 22:54:02
阅读次数:
145
题目 : 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 解析 首先:位运算中异或的性质:两个相同数字异或=0,一个数和0异或还是它本身。异或运算满足交换律结合律. 当只有一个数出现一次时,我们把数组中所有的数,依次异或运算,最后剩下的就是落单的数,因为 ...
分类:
编程语言 时间:
2020-02-05 23:43:16
阅读次数:
98
快速乘法取模 当要求两个长整形取模时,如果直接两个长整形相乘就很容易超出长整形的范围。 乘法的本质就是加法!这时候我们就可以用一遍遍加法来模拟求模,比如一百乘1000取模二,就是一千个一百取模2相加。这种直接模拟法还是8太行。为了精益求精 有了快速乘! 如同快速幂取模,快速乘从名字上就可以看出和快速 ...
分类:
其他好文 时间:
2020-02-04 20:43:27
阅读次数:
96
Java位运算符有:左移( ) 、无符号右移( ) 、位与( & ) 、位或( | )、位非( ~ )、位异或( ^ ),除了位非( ~ )是一元操作符外,其它的都是二元操作符。 原码、反码、补码 原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。 反码:将二进制数按位取反,所得的新二进制数 ...
分类:
其他好文 时间:
2020-02-03 13:27:00
阅读次数:
68
目录 ConcurrentHashMap 2 预备知识 2 Hash 2 位运算 2 1.7中原理和实现 3 ConcurrentHashMap中的数据结构 3 初始化做了什么事? 4 在get和put操作中,是如何快速定位元素放在哪个位置的? 5 get()方法 6 put()方法 6 扩容操作 ...
分类:
其他好文 时间:
2020-02-02 21:44:59
阅读次数:
71
面试题64:求1+2+…+n 题目描述 求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 问题分析 有了那么多限制,剩下的我们可以选择 单目运算符:++和 ,双目运算符:+, ,移位运算符 ,关系运算符 ,1) & ...
分类:
其他好文 时间:
2020-02-01 19:24:39
阅读次数:
83