unsigned long int在C语言中是无符号长整形变量,是整形变量的一种。
unsigned long int 与unsigned long是等价的,即定义的时候int可以不写。 C语言字节数为4,与long型数据一样。
unsigned long int的取值范围: 0~4294967295 即 0~(2的32次方-1)
unsigned 是无符号 long是长 int是整型数据 unsigned long int 就是无符号长整型数据
unsigned
整型的每一种都有无符号(unsigned)和有符号(signed)两种类型(float和double总是带符号的),在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需声明无符号类型的话就需要在类型前加上unsigned。无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的数据,比如16位系统中一个int能存储的数据的范围为-32768~32767,而unsigned能存储的数据范围则是0~65535。由于在计算机中,整数是以补码形式存放的。根据最高位的不同,如果是1,有符号数的话就是负数拉;如果是无符号数,则都解释为正数。同时在相同位数的情况下,所能表达的整数范围变大。另外,unsigned若省略后一个关键字,大多数编译器都会认为是unsigned int。
int
int数据类型,在32位系统中(现在基本上int都是32位),范围-2147483648~+2147483647。unsigned类型 的int 范围:0~4294967295 即 0~(2的32次方-1)
所以我觉得unsigned int 与 unsigned long 在一般情况下是一样的!
---------------------
uint16_t Get_Adc_Average1(uint8_t times)
{
uint32_t temp_val=0;
uint8_t t;
for(t=0; t<times; t++)
{
temp_val+=ADC_ConvertedValue[0];
}
return temp_val/times;
}
unsigned int Get_Adc_Average1(unsigned int Input_dat,unsigned int times)
{
unsigned long temp_val=0;
unsigned int t;
for(t=0; t<times; t++)
{
temp_val+=Input_dat;
}
return temp_val/times;
}
|