utilities(C/C++)
来源:互联网 发布:jquery alert json 编辑:程序博客网 时间:2024/05/21 08:57
swap 的另一种实现
int max, min;n > m ? (max = n, min = m):(max = m, min = n); // 此时的三目运算符不在等号右侧,用于赋值,而是做一些操作
十进制的小数形式(单精度、双精度)与 IEEE 754 下的二进制形式的相互转化
IEEE 754——计算机中浮点数的表示方法
std::bitset<32> float2bits(float n){ _ULonglong nMem = *(unsigned __int64*)&n; return std::bitset<32>(nMem);}std::bitset<64> double2bits(double n){ _ULonglong nMem = *(unsigned __int64*)&n; return std::bitset<64>(nMem);}float bits2float(std::bitset<32>& bs){ return *(float*)&bs;}double bits2double(std::bitset<64>& bs){ return *(double*)&bs;}
hashString
unsigned long cryptTable[0x500];void prepareCryptTable(){ unsigned long idx1, idx2, k; unsigned long step = 0x100, n = 5; unsigned long seed = 0x00100001; for (idx1 = 0; idx1 < step; ++idx1) { for (idx2 = idx1, k = 0; k < 5; ++k, idx2 += step) { unsigned long tmp1, tmp2; seed = (seed * 125 + 3) % 0x2aaaab; tmp1 = (seed & 0xffff) << 0x10; seed = (seed * 125 + 3) % 0x2aaaab; tmp2 = (seed & 0xffff); cryptTable[idx2] = (tmp1 | tmp2); } }}unsigned long hashString(char* lpszFileName, unsigned long dwHashType){ unsigned char* key = (unsigned char*)lpszFileName; unsigned long seed1 = 0x7fed7fed, seed2 = 0xeeeeeeee; int ch; while (*key) { ch = toupper(*key++); seed1 = cryptTable[(dwHashType << 8) + ch] ^ (seed1 + seed2); seed2 = ch + seed1 + seed2 + (seed2 << 5) + 3; } return seed1;}
解释说明见 十一、从头到尾解析Hash表算法。
0 0
- utilities(C/C++)
- utilities(C/C++)(二)
- utilities(C++)——枚举
- utilities(C++)——错误提示
- utilities(C++)——宏函数
- utilities(C++)——单例(Singleton)
- utilities(C++)——Null类的设计
- utilities——比较与排序规则(C++)
- utilities(C++)——单例(Singleton) (使用智能指针 shared_ptr)
- utilities(python)
- utilities
- utilities
- Joomla 1.5架构(十五) Utilities 包
- 网页爬虫WebCrawler(2)-Utilities
- utilities(matlab)—— mat2imgcell
- utilities(matlab)—— normalize
- utilities(matlab)—— minFunc
- utilities(matlab)—— l2row/l2col
- C++类静态成员初始化
- Neural Networks and Deep Learning学习笔记ch5 - 为什么深度神经网络很难训练?
- linux平台从源码安装git
- hdoj 5611 Baby Ming and phone number 【模拟】
- 玩诈欺的小杉(详细解析+代码)
- utilities(C/C++)
- netty 高并发实战
- JVM memory
- 当鼠标进入li标签,给标签中的img元素加缩放效果
- VMware 11安装Mac OS X 10.10
- LeetCode Best Time to Buy and Sell Stock II(贪心)
- Android使用DrawerLayout和ToolBar实现仿知乎侧滑菜单
- JQuery DataTables
- 斯坦福机器学习在线demo