比如:unsigned short *p;
p=new unsigned short [100];
如何将p转换成int类型?
我分别用 file.Read(&i,sizeof(int)); 和 file.Read(&j,sizeof(float)); 做实验,发现i 和 j 的值不一样,为什么,int 和 float 都是4个字节啊。为什么读取的 i 和 j 值 不一样?
1、移位相加即可,但是要注意unsigned short类型,需要转换为无符号数据,否则0xe8认为是负数(其实也可以定义时就为unsigned short)。
2、例程:
#include <stdio.h>现在p指向unsigned short 类型的100个数,但是另外一个程序有个int变量要用到这100个数,所以我想把p指向的100个数,转换成int类型。
追答如果只是数的转换的话,是可以直接转的,我也建议你直接使用数据的转换,不要轻易用指针的转换。
比如int a;想用你的short数据,可以直接赋值
a=p[0];或者a=p[i];就可以了,不用特别的转换,因为这个从低向高处转换使自动的,因为short的16位撑死也不可能占满int的32位空间。
我分别用 file.Read(&i,sizeof(int)); 和 file.Read(&j,sizeof(float)); 做实验,发现i 和 j 的值不一样,为什么,int 和 float 都是4个字节啊。为什么读取的 i 和 j 值 不一样?
追答int,float都占4个字节,但它们的表示方法是不一样的.