以下是引用BlueGuy在2010-6-4 21:33:08的发言:
/*
敢问计算机能够储存东东的是什么?
*/
晕, 答非所问了,不过这问题问的真够雷人的,
//我当然知道计算机存储的是什么,计算机能够存储的是二进制数据,关键是看编译器怎么去解析数据。
//比如说一个字节FF,用unsigned char 定义的变量去存储它,它就是255, 用 signed char 定义的变量去存储它,
//就是
//-1。
说真的, 不太清楚 15楼是什么意思, 也许我的理解尚浅哦, 想多了确实挺别扭的
题外话,我经常需要把一个 int型的变量 拆成 四个字节的,然后再合成一个 int型的变量,
由这个东西引起的心灵的伤害可真不小。
readInt(signed char* input, int skip) 这样的原型是会出错的,
虽然-1与255在内存中的存储形式都为0XFF,
但是解析出来的数据对运算的结果是不一样的,
所以我都是这样处理的,
int readInt(unsigned char* input, int skip)
{
int c, c1, c2, c3;
/* get 4 bytes*/
c = input[skip];
c1 = input[skip+1];
c2 = input[skip+2];
c3 = input[skip+3];
return (c3) +
(c2<< 8) +
(c1<< 16) +
(c<< 24);
}
[
本帖最后由 BlueGuy 于 2010-6-9 18:40 编辑 ]