C语言 无符号整型 uint???

#define uint unsigned int
uint temp
....
.....
......
temp=temp*0.0625
问题:temp在这里为什么可以直接和0.0625相乘??

这里涉及到一个默认类型转换的问题。
通常情况下,unsigned型的变量和signed型的变量进行运算,结果会向signed对齐,char型的变量和int型的变量进行运算,结果会向int对齐,也就是结果会是int型的。而float型的变量和int型的变量运算,结果会向float型对齐,其它的类似。
上述问题中,temp变量是unsigned int型的,而常数0.0625是float实型的,temp*0.0625结果会向signed float对齐,也就是结果会是float型的,赋给一个unsigned int 的变量,这样会对它进行一些取舍,比如小数部分肯定不会保留。最终temp得到他们运算结果的整数部分。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-12-24
不是用宏定义的方式吧无符号整形用 uint 表示了 那 uint temp 不就是声明了一个无符号整形变量 temp 么 自然可以对变量做算术操作咯
第2个回答  2013-12-23
unsigned int 相当于正整数的意思
int 是整数
unsigned*float=float 即正整数*小数=小数追问

你好,你能帮我回答一下下面的问题么,谢谢http://zhidao.baidu.com/question/1494362051368335619.html

追答

回答了

第3个回答  2013-12-23
这里计算的结果是double型了,然后再赋值回来的时候回丢弃小数部分

C语言 无符号整型 uint???
通常情况下,unsigned型的变量和signed型的变量进行运算,结果会向signed对齐,char型的变量和int型的变量进行运算,结果会向int对齐,也就是结果会是int型的。而float型的变量和int型的变量运算,结果会向float型对齐,其它的类似。上述问题中,temp变量是unsigned int型的,而常数0.0625是float实型的,...

c语言中uint是什么意思
在C语言中,uint是一个常见的缩写,它代表"unsigned int"。"unsigned"是一个前缀,用来表示整数类型没有负值,而"int"则是整数类型的基本表示。因此,当你看到"uint"这个词,程序员通常是在指无符号整型,它主要用于那些不需要考虑负数值,且值范围较大的数据类型。这种数据类型在处理存储、计数和运算...

c语言中 int char uint uchar 的取值范围都是多少?
c语言中没有uint、uchar这两个关键字,uint、uchar是为了阅读书写方便用户使用宏自定义的,分别代表无符号整型、无符号字符型:define uchar unsigned char define uint unsigned int 其中:uint数据类型占两字节, 取值范围是-32768~32767。uchar数据类型占一字节, 取值范围是_128~127。C语言是一门通用...

uint是几位无符号整数?
uint8是8位无符号整型,uint16是16位无符号整型。整型有无符号(unsigned)和有符号(signed)两种类型,在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需声明无符号类型的话就需要在类型前加上unsigned。在一些不可能取值为负数的时候,可以定义为unsigned,在一些底层的嵌入式编程的...

unit是什么数据类型?C#中
unit是“长度度量”类型,不是uint,uint是无符号整数

c语言中UINT8是什么意思
在C语言中,UINT8是一个重要的数据类型,它表示无符号8位二进制整型,本质上等同于unsigned char。当我们看到"(uint8 *)"这样的表示,实际上是将变量t的类型转换为指向无符号8位整数的指针类型。这里的"uint8"中的'u'代表无符号,'int'指的是整数,而'8'则表示占用8个字节。此外,'_t'通常...

C语言 unsigned char 和unsigned int什么区别和联系?分别多少位?求简介...
unsigned char为无符号字符类型,而unsigned int为无符号整数类型。unsigned char为8位,多数情况下unsigned int为32位。但随系统的不同它的位数可能变化,有时是与系统位数对齐的,也就是说对8位的系统,它是8位,16位系统则为16位,32位的系统则为32位。

C语言中,int,uint,cuint的区别是什么?
int就是整数 uint 就是无符号整数 cuint就是const无符号整数

C语言中,int,uint,cuint的区别是什么?
int是整型数,例如-1,0,1都是 uint是unsigned int,即无符号整型,例如0,1,2.。。等 cuint没有接触过。

C语言中无符号类型是什么意思啊?
无符号类型就是不表示负数,只表示正数的数据类型。通常在数据类型关键字前加unsigned。无符号的数据类型主要有以下几类:unsigned char \/\/ 无符号字符型 ,能表示的数的范围为0~(2^8-1)unsigned int \/\/ 无符号整型 ,能表示的数的范围为0~(2^16-1)unsigned long int \/\/ 无符号长型...

相似回答