
C语言强制类型转换
比如说(double)k/m中他到底是强制转换k值还是强制转换k\m的值如果要转换k或k\m的值怎么转换(k.m)都是整数常量...
比如说 (double)k/m 中 他到底是强制转换k值还是强制转换k\m的值如果要转换k或k\m的值怎么转换 (k.m)都是整数常量
展开
17个回答
展开全部
(type)<expression>
其中,type为类型描述符,如int,float等。<expression>为表达式。经强制类型转换运算符运算后,返回一个具有type类型的数值,这种强制类型转换操作并不改变操作数本身,运算后操作数本身未改变,例如:
intnVar=0xab65;
charcChar=char(nVar);
上述强制类型转换的结果是将整型值0xab65的高端两个字节删掉,将低端两个字节的内容作为char型数值赋值给变量cChar,而经过类型转换后nVar的值并未改变。
其中,type为类型描述符,如int,float等。<expression>为表达式。经强制类型转换运算符运算后,返回一个具有type类型的数值,这种强制类型转换操作并不改变操作数本身,运算后操作数本身未改变,例如:
intnVar=0xab65;
charcChar=char(nVar);
上述强制类型转换的结果是将整型值0xab65的高端两个字节删掉,将低端两个字节的内容作为char型数值赋值给变量cChar,而经过类型转换后nVar的值并未改变。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我怎么感觉这是单片机里的代码。
t的结果是浮点数。如果t为0点几,强转后就是0了。
如果按照你说的t等于2506.75,强转后就是2506
如果发现结果不对,可以这样调试:
直接写
t=2506.75;//t是浮点数
uint
a=(uint)t;//你看看a是不是0,肯定不是0
t的结果是浮点数。如果t为0点几,强转后就是0了。
如果按照你说的t等于2506.75,强转后就是2506
如果发现结果不对,可以这样调试:
直接写
t=2506.75;//t是浮点数
uint
a=(uint)t;//你看看a是不是0,肯定不是0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
(type)
其中,type为类型描述符,如int,float等。
为表达式。经强制类型转换运算符运算后,返回一个具有type类型的数值,这种强制类型转换操作并不改变操作数本身,运算后操作数本身未改变,例如:
intnvar=0xab65;
charcchar=char(nvar);
上述强制类型转换的结果是将整型值0xab65的高端两个字节删掉,将低端两个字节的内容作为char型数值赋值给变量cchar,而经过类型转换后nvar的值并未改变。
其中,type为类型描述符,如int,float等。
为表达式。经强制类型转换运算符运算后,返回一个具有type类型的数值,这种强制类型转换操作并不改变操作数本身,运算后操作数本身未改变,例如:
intnvar=0xab65;
charcchar=char(nvar);
上述强制类型转换的结果是将整型值0xab65的高端两个字节删掉,将低端两个字节的内容作为char型数值赋值给变量cchar,而经过类型转换后nvar的值并未改变。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在赋值表达式中,当左右两边数据类型不同时,右边的数据类型应变为左值(变量)的数据类型,同时编译器也能自动进行类型转换,将低字节数据类型转换为高字节类型,例如:int转换为long
int,当不同的数据类型相互赋值时还有精度缺失问题,例如:将int赋给char,只是将低八位(一个字节)赋给它,希望可以帮到你!
int,当不同的数据类型相互赋值时还有精度缺失问题,例如:将int赋给char,只是将低八位(一个字节)赋给它,希望可以帮到你!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
float是4字节,700000的二进制是:
10001000101110000
char是1字节,故fFloat变量会被截断,只有低8位才会被赋给cChar,即01110000,也就是10进制的112,112正式字符“p”的ASCII码。所以程序会输出“p”。
10001000101110000
char是1字节,故fFloat变量会被截断,只有低8位才会被赋给cChar,即01110000,也就是10进制的112,112正式字符“p”的ASCII码。所以程序会输出“p”。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |