如题,sizeof(unsigned int)为1 sizeof(unsigned long int)为2 ,并且DSP中 unsigned int 的最大值为2^32-1, unsigned long int 的最大值也为2^32-1,但是如果定义一个unsigned int 型的数据,赋值十的8次方,就会出错,而定义 unsigned long int型的值就不会。 这里不知道是为什么?
还有,有关double与float型数据,float型数据提供 7-8位有效数字,double型数据提供15~16有效数字。我的问题是,我将一个有十一位数字长度的值赋值给一个 double 型,会出错,后两位数就回出错。例如:
double tp;
tp=10372665846.0/100000000;
这样计算会出错;
或者
tp=172665846.0/100000000;
按道理算出的值应为:0.172665846,但实际输出后两位小数就是错的。
Seven Han:
您好,
在编译器手册spru514 6.4章节有对c28x数据类型的详细描述,unsigned int 最大值是65535,unsigned long是32位的,
如题,sizeof(unsigned int)为1 sizeof(unsigned long int)为2 ,并且DSP中 unsigned int 的最大值为2^32-1, unsigned long int 的最大值也为2^32-1,但是如果定义一个unsigned int 型的数据,赋值十的8次方,就会出错,而定义 unsigned long int型的值就不会。 这里不知道是为什么?
还有,有关double与float型数据,float型数据提供 7-8位有效数字,double型数据提供15~16有效数字。我的问题是,我将一个有十一位数字长度的值赋值给一个 double 型,会出错,后两位数就回出错。例如:
double tp;
tp=10372665846.0/100000000;
这样计算会出错;
或者
tp=172665846.0/100000000;
按道理算出的值应为:0.172665846,但实际输出后两位小数就是错的。
mangui zhang:
回复 Seven Han:
这个数据类型的表很经典很多人问数据类型的问题