在上篇文章中初步的分析了一下,Redis工具类文件中的一些用法,包括2个随机算法和循环冗余校验算法,今天,继续学习Redis中的其他的一些辅助工具类的用法。包括里面的大小端转换算法,sha算法在Redis中的实现和通用工具类算法util.c。
先来看看大小端转换算法,大小端学习过操作系统的人一定知道是什么意思,在不同的操作系统中,高位数字的存储方式存在,高位在前,低位在后,或是...
分类:
其他好文 时间:
2014-10-31 12:06:50
阅读次数:
227
1、单链表插入#include #include #define FALSE 0#define TRUE 1typedef struct NODE{ STRUCT NODE *link; int value;}Node;int sll_insert(Node *current,int n...
分类:
编程语言 时间:
2014-10-30 18:31:40
阅读次数:
195
对与多字节数据,不同的CPU有不同的组织方式,并且对于单字节序内部的多个位域字段,和多字节数据一样也存在不同的组织方式.
一. 大端字节序
将数据高有效位存在低内存地址中,而数据低有效位存放在高内存地址中.
网络字节序采用大端字节序.
解析: 数据部分: 0A,17,0E,06这样的顺序从高位都地位排列. 到了内存地址中, 高...
分类:
其他好文 时间:
2014-10-30 11:41:46
阅读次数:
141
对于不同的机器,一此格式化输出的函数常常会得不到正确的输出,比如小端上的程序在大端上运行等,另外,在日常程序开发时,也会经常被这样的小问题而困扰很久,最终发现是她的问题,不免有点叹息,下面对printf/wprintf/CString.Format等相关函数所使用的格式化输出的语法作一总结,有些是从官方资料摘过来的,还是英文的。
函数中格式化声明的一般格式为:
%[flags] ...
分类:
编程语言 时间:
2014-10-28 12:12:14
阅读次数:
276
#include
#include
#if 0
bool isBigEndian(void)
{
int var = 0x12345678;
char *p = (char *)&var;
return *p == 0x12;
}
#endif
#if 0
bool isLittleEndian(void)
{
int var ...
分类:
其他好文 时间:
2014-10-23 22:49:16
阅读次数:
167
问题:请写一个C函数,若处理器Big_endian的,则返回0;若是Little_endian的,则返回1。简单复习下大小端的概念:大端模式(Big_endian):字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。小端模式(Little_endian):字数据的高字节存储在高地址中,而字数..
分类:
编程语言 时间:
2014-10-21 02:23:42
阅读次数:
189
大端序和小端序
一般Intel处理器或者X86平台都是小端序 ,只有老一点的摩托罗拉处理器会用大端序,所以重点掌握一下小端序。
小端序一般指低地址存低字节,高地址存高字节。。。简称 “低低高高”
举个C语言的例子:
#include
union u
{
int i;
char j[2];
}a;
void main()
{
a.j[...
分类:
其他好文 时间:
2014-10-16 21:25:33
阅读次数:
226
时间:2014.07.18地点:基地-----------------------------------------------------------------------------一、跨多字节对象 相应跨多字节的程序对象,有两个点:一是这个对象的地址是什么。二是在内存中,这多个字节是怎样存...
分类:
其他好文 时间:
2014-10-14 12:38:48
阅读次数:
197
一直以为自己对大端小端的区别已经掌握得很清楚了,没想到在实际应用中还是会犯糊涂,这里记录一下,同样的错误不能再犯了。uint32_t temp = 0x01020304;大端:&temp地址处存放的是高字节,即((uint8_t *)&temp)[0] = 0x01;小端:&temp地址处存放的是低...
分类:
其他好文 时间:
2014-10-11 20:27:16
阅读次数:
195