R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大。 R语言作为统计学一门语言,一直在小众领域闪耀着光芒。直到大数据的爆发,R语言变成了一门炙手可热的数据分析的利器。随着越来越多的工程背景的人的加入,R语言的社区在迅速扩大成长。现在已不仅仅是统计领域,教育,银行,电商,互联网….都在使用R语言。 要成为有理想的极客,我们不能停留在语法上,要掌握牢固的数学,概率,统计知识,同时还要有创新精神,把R语言发挥到各个领域。让我们一起动起来吧,开始R的极客理想。 关于作者: 张丹,分析师/程序员/Quant: R,Java,Nodejs blog: http://blog.fens.me email: bsspirit@gmail.com 转载请注明出处: http://blog.fens.me/r-bit-operation/ 前言 本来是要研究字符串的匹配的问题,然后看着看着就到了文本距离的计算,然后就又到了位运算。要不然也不会想到,用R语言搞二进制的位运算研究。每种算法一旦刨根问底,都是会到计算机的底层计算逻辑。 赶上了问题,就认真面对问题,把二进制和位运算一些看看。关于进制转换的文章,请参考用R语言进制转换-二进制八进制十六进制 目录 什么是位运算 位运算的计算过程 R语言中的位运算 1. 什么是位运算 计算机中的所有数值,都是在内存中都是以二进制的形式储存的,即 0、1 两种状态。位运算就是直接对内存中的二进制位数据进行的操作。比如,“&”与运算是一个逻辑运算符,6的二进制是110,11的二进制是1011,那么6 & 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理)。 位运算概览: 符号 描述 运算规则 & 与 两个位都为1时,结果才为1 | 或 两个位都为0时,结果才为0 xor 异或 两个位相同为0,相异为1 ~ 取反 0变1,1变0 << 左移 各二进位全部左移若干位,高位丢弃,低位补0 >> 右移 各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移) 2. 位运算的计算过程 2.1 按位与(&) 定义:参加运算的两个数据,按二进制位进行”与”运算。 运算规则:两位同时为1,结果才为1,否则结果为0。 0&0=0 , 0&1=0, …
Read more →