联合体union
当多个数据需要共享内存或者多个数据每次只取其一时,可以利用联合体(union)。在C Programming Language 一书中对于联合体是这么描述的:
1)联合体是一个结构;
2)它的所有成员相对于基地址的偏移量都为0;
3)此结构空间要大到足够容纳最"宽"的成员;
4)其对齐方式要适合其中所有的成员;
下面...
分类:
编程语言 时间:
2015-06-10 08:52:38
阅读次数:
178
联合体的特点
1、联合体是一种结构,在这个结构中可以不同类型的成员,但同一时间只能存放其中的一种。
#include
union Demo
{
int a;
char b;
long long c;
};
int main(){
union Demo demo;
demo.a = 10;
printf("a=%d\n", demo.a);
printf("b=%d\n"...
分类:
其他好文 时间:
2015-06-06 22:06:40
阅读次数:
161
一、为什么会出现大小端模式?
不同的cpu采用的大小端模式不一致。X86是小端模式。而KEIL
C51则为大端模式。很多的ARM,DSP都为小端模式。有些ARM处理器还可以由硬件来选择是大端模式还是小端模式。
二、大小端模式的不同带来的问题是什么?如何解决?
如果存在数据网络传输,如果大小端模式不一致,如果不经过转换,必然会导致数据不致,出现错误。
解决方法:统一将网络上传输的...
分类:
其他好文 时间:
2015-06-03 11:53:27
阅读次数:
112
基本概念我们可以把计算机的内存抽像成一个大的数组,在这个数组中,包含了一个个的字节元素。对于大小端的讨论,我们可以认为内存的最小单元即是一个字节(byte)。对于每个字节,我们可以使用一个“索引”来标识,这个索引亦即我们平常所说的内存的地址。
假定计算机的字长为32位,即一个字包括4个字节。对于一个32位整数,例如,0x90AB12CD。由于每个十六进制的数字代表了4个位(bits),故我们需要8...
分类:
其他好文 时间:
2015-06-01 16:44:30
阅读次数:
151
1. 什么是大端,什么是小端:所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。2.为什么会有大小端: 为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单.....
分类:
其他好文 时间:
2015-05-23 22:36:27
阅读次数:
173
在文章的开头我首先要介绍一下大小端的概念:
大端模式:
是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;
小端模式:
是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值...
分类:
编程语言 时间:
2015-05-17 09:25:37
阅读次数:
185
在上篇文章中初步的分析了一下,Redis工具类文件里的一些使用方法,包含2个随机算法和循环冗余校验算法,今天,继续学习Redis中的其它的一些辅助工具类的使用方法。包含里面的大小端转换算法,sha算法在Redis中的实现和通用工具类算法util.c。 先来看看大小端转换算法,大小端...
分类:
其他好文 时间:
2015-05-14 13:38:54
阅读次数:
131
最近做了一款Android应用,需要和PC端通过socket传递数据。
Java Socket的接收与发送
首先我们会建立一个socket连接,然后从中获取InputStream和OutputStream。在接收的时候我是用一个DataInputStream对Socket的InputStream进行包装,便于后面接收不同大小的数据类型。在发送时先通过DataOutputStream()对OutputStream进行...
分类:
编程语言 时间:
2015-05-13 19:53:08
阅读次数:
157