神奇算法小集合
整理一些今天看到的比较神奇的算法,可以拓宽下自己的思维和视野。
一、一个Float类型的绝对值
一个数值的绝对值可以通过与符号位的按位与操作来实现,对于IA32 32bit处理器,符号位是0x80000000,对于IA32 64bit来说,符号位是0x8000000000000000。下面代码为double类型的取绝对值操作。
//Trailing Zero Countunsigned inttzc(register int x){ return(ones((x & -x) - 1));}