此算法源码最初由 Borland 的 Delphi 语言编写,似乎 Allen Bauer 是原作者,源码如下。 本质上,它只是简单的位运算而已,但加密强度并不低,所以用在譬如密码加密等方面应比较合适。 于是我编写了 Golang 版本的实现(Encrypt/Decrypt 甚至完全可以直接改写原切 ...
分类:
编程语言 时间:
2017-06-23 18:18:54
阅读次数:
309
int __builtin_ffs (unsigned int x) 返回x的最后一位1的是从后向前第几位,比方7368(1110011001000)返回4。int __builtin_clz (unsigned int x) 返回前导的0的个数。int __builtin_ctz (unsigne ...
分类:
其他好文 时间:
2017-06-23 10:15:41
阅读次数:
160
1.位与运算 & 注意:& 和 && 是有区别的。前面这个是位与运算,后者是逻辑与运算,也就是算数运算 1 1 1 1 0 1 0 1 看看位与运算的真值表 结论:全真为真。其他为假0 & 1 01 & 0 01 & 1 10 & 0 0 0x5b 5 0101 例如:0xb5 & 0123 0x1 ...
分类:
其他好文 时间:
2017-06-22 20:49:38
阅读次数:
154
1.库的调用 #include<cstdio> //printf和scanfd调用(格式化输入输出),getchar()调用(暂停) #include<cstdlib> //system()调用(暂停) #include<iostream> //cin,cout调用(流输入输出) #include< ...
分类:
编程语言 时间:
2017-06-21 21:06:59
阅读次数:
118
1.算数运算 2.比较运算 3.赋值运算 4.逻辑运算 5.成员运算 6.位运算 7.运算符优先级 ...
分类:
编程语言 时间:
2017-06-21 09:42:01
阅读次数:
127
题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 解题思路 求两个数的和在不能使用加减乘除的条件下,可以使用位运算。位运算是针对二进制的,我们以5和17这两个数字为例。5的二进制是101,17的二进制是10001。我们把计算分成三步:第一步各位相加但不计进位, ...
分类:
其他好文 时间:
2017-06-20 22:17:46
阅读次数:
117
传送门 分解质因数,不说了 这题坑了我2个多小时 教训 不熟悉位运算的优先级一定要加括号!!!! ...
分类:
其他好文 时间:
2017-06-20 20:17:20
阅读次数:
130
从上面的例子可以看出,start在移过两位以后,用0来填补空出的位。进行移位运算时应注意移位前后变量的位数,下面举例说明。 4’b1001<<1 = 5’b10010; //左移1位后用0填补低位 4’b1001<<2 = 6’b100100; //左移2位后用00填补低位 1<<6 = 32’b1 ...
分类:
其他好文 时间:
2017-06-20 11:04:47
阅读次数:
384
移位运算符:分为右移位运算符和左运算符 那么问题来了,他这个公式是怎么来的呢? 举个例子: 3<<3 首先先把3转换为2进制是: 11 将11左移动三位也就是11000,那么11000转换为10进制就是:24 所以得出3<<3的答案是24 右移同理: 举例:32>>4 32转换为2进制是:10000 ...
分类:
其他好文 时间:
2017-06-17 20:38:20
阅读次数:
166
找球号(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:5 描写叙述 在某一国度里流行着一种游戏。游戏规则为:现有一堆球中。每一个球上都有一个整数编号i(0<=i<=100000000),编号可反复。另一个空箱子,如今有两种动作:一种是"ADD",表示向空箱子里放m(0<m<= ...
分类:
其他好文 时间:
2017-06-16 22:04:21
阅读次数:
226