问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言强制类型转换

发布网友 发布时间:2022-04-23 11:28

我来回答

15个回答

热心网友 时间:2022-04-13 00:01

强制类型转换是把变量从一种类型转换为另一种数据类型。

例如,如果您想存储一个 long 类型的值到一个简单的整型中,您需要把 long 类型强制转换为 int 类型。您可以使用强制类型转换运算符来把值显式地从一种类型转换为另一种类型。

扩展资料:

举例说明

使用强制类型转换运算符把一个整数变量除以另一个整数变量,得到一个浮点数:

#include <stdio.h>int main()

{
  int sum = 17, count = 5;

double mean;
  mean = (double) sum / count;

printf("Value of mean : %f\n", mean );
}

当上面的代码被编译和执行时,它会产生下列结果:

Value of mean : 3.400000

参考资料来源:百度百科-C语言

热心网友 时间:2022-04-13 01:19

强制类型转换是把变量从一种类型转换为另一种数据类型。

例如,如果想存储一个long类型的值到一个简单的整型中,需要把long类型强制转换为int类型。可以使用强制类型转换运算符来把值显式地从一种类型转换为另一种类型。

发生在同一个编译系统中,比如说把int转化为longint,在VC++6.0里面,longint和int都是4个字节,不会有问题的,但是如果把int类型转化为short类型那就装不下了,简而言之就是长类型不能转化为短类型。

int类型如果要转化为float、double、longdouble类型的时候只是末尾多了几个0,但是反之转化,就会出现数据的损失,小数部位都被省略掉了。

赋值中的类型转换

当赋值运算符两边的运算对象类型不同时,将要发生类型转换, 转换的规则是:把赋值运算符右侧表达式的类型转换为左侧变量的类型。

由于C语言中的浮点值总是用双精度表示的,所以float 型数据只是在尾部加0延长为double型数据参加运算,然后直接赋值。double型数据转换为float型时,通过截尾数来实现,截断前要进行四舍五入操作。

以上内容参考:百度百科-C语言类型强制转换

热心网友 时间:2022-04-13 02:53

好问题!

C语言中这样的转换,转换的是和(double)最近的右边的数据,运算级别低于括号,但是高于乘除、加减、赋值符等;而你考虑的k/m的问题:这个关键看进行二元运算的精度的最高级别,二元运算的两个变量中:精度较低的会自动转换为精度较高的;

#include<stdio.h>
main(){
int m,n,num;
char t='0',th;
double dou_1,dou_2,dou_3;
m=5;n=321;
num=t/((float)m/n);
dou_1=(double)(n/m);
dou_2=n/m;
dou_3=(double)n/m;
th=(double)n/m;
printf("%d,%f,%f,%f,%c",num,dou_1,dou_2,dou_3,th);
getch();
}
用这个多试试,会有较深的理解。

热心网友 时间:2022-04-13 04:45

其实是先转换k,因为()的优先级高于/,但是double精度类型高于int型m,故最后的结果还是double型 。假如:k=1,m=2,则(double)k/m=0.500000
(double)(k/m)=0.000000

热心网友 时间:2022-04-13 06:53

强制类型转换具有两种形式,称为显式强制转换和隐式强制类型转换。
1、显式强制类型转换
显式强制类型转换需要使用强制类型转换运算符,格式如下:
type(<expression>)或(type)<expression>
其中,type为类型描述符,如int,float等。<expression>为表达式。经强制类型转换运算符运算后,返回一个具有type类型的数值,这种强制类型转换操作并不改变操作数本身,运算后操作数本身未改变,例如:
int
nVar=0xab65;
char
cChar=char
(nVar);
上述强制类型转换的结果是将整型值0xab65的高端两个字节删掉,将低端两个字节的内容作为char型数值赋值给变量cChar,而经过类型转换后nVar的值并未改变。
2、隐式强制类型转换
隐式类型转换发生在赋值表达式和有返回值的函数调用表达式中。在赋值表达式中,如果赋值符左右两侧的操作数类型不同,则将赋值符右边操作数强制转换为赋值符左侧的类型数值后,赋值给赋值符左侧的变量。在函数调用时,如果return后面表达式的类型与函数返回值类型不同,则在返回值时将return后面表达式的数值强制转换为函数返回值类型后,再将值返回,如:
int
nVar;
double
dVar=3.88;
nVar=dVar;//执行本句后,nVar的值为3,而dVar的值仍是3.88

热心网友 时间:2022-04-13 09:17

(type)<expression>
  其中,type为类型描述符,如int,float等。<expression>为表达式。经强制类型转换运算符运算后,返回一个具有type类型的数值,这种强制类型转换操作并不改变操作数本身,运算后操作数本身未改变,例如:
  intnVar=0xab65;
  charcChar=char(nVar);
  上述强制类型转换的结果是将整型值0xab65的高端两个字节删掉,将低端两个字节的内容作为char型数值赋值给变量cChar,而经过类型转换后nVar的值并未改变。

热心网友 时间:2022-04-13 11:59

我怎么感觉这是单片机里的代码。
t的结果是浮点数。如果t为0点几,强转后就是0了。
如果按照你说的t等于2506.75,强转后就是2506
如果发现结果不对,可以这样调试:
直接写
t=2506.75;//t是浮点数
uint
a=(uint)t;//你看看a是不是0,肯定不是0

热心网友 时间:2022-04-13 14:57

(type)
  其中,type为类型描述符,如int,float等。
为表达式。经强制类型转换运算符运算后,返回一个具有type类型的数值,这种强制类型转换操作并不改变操作数本身,运算后操作数本身未改变,例如:
  intnvar=0xab65;
  charcchar=char(nvar);
  上述强制类型转换的结果是将整型值0xab65的高端两个字节删掉,将低端两个字节的内容作为char型数值赋值给变量cchar,而经过类型转换后nvar的值并未改变。

热心网友 时间:2022-04-13 18:11

在赋值表达式中,当左右两边数据类型不同时,右边的数据类型应变为左值(变量)的数据类型,同时编译器也能自动进行类型转换,将低字节数据类型转换为高字节类型,例如:int转换为long
int,当不同的数据类型相互赋值时还有精度缺失问题,例如:将int赋给char,只是将低八位(一个字节)赋给它,希望可以帮到你!

热心网友 时间:2022-04-13 21:43

float是4字节,700000的二进制是:
10001000101110000
char是1字节,故fFloat变量会被截断,只有低8位才会被赋给cChar,即01110000,也就是10进制的112,112正式字符“p”的ASCII码。所以程序会输出“p”。

热心网友 时间:2022-04-14 01:31

我来原创吧。。
C是c++他老爸,但是c++青出于蓝而胜于蓝,更强大。
C是过去面向过程的语言,而c++具有面向对象的特征:封装、多态、继承等特性。。c++还兼容C的一些特性,支持:面向过程、基于对象、面向对象与泛型编程。。

因此c++是非常 强大的语言,而C是非常经典的语言。

热心网友 时间:2022-04-14 05:35

你说怎么进行强制类型转换的啊?
unsigned
int
temp
=
0x0191;
float
t
=
temp
*
0.0625
*
100
+
0.5;
printf("%f---
%d\n",t,(unsigned
int
)t);
我这个样子是对的啊,输出:2506.750000---
2506

热心网友 时间:2022-04-14 09:57

(double)k/m

等价于
((double)k)/m

热心网友 时间:2022-04-14 14:51

最好写成(double)(k/m),这样看起来更清晰。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
word文档怎么设置页码word怎么从中间开始设置页码 《祖宗模拟器》如何长寿长寿技巧分享 祖宗模拟器答案大全,你知道吗。 祖宗模拟器答案大全,哪位有? 宝石种类分为哪几类? 表格怎么自动排序号excel表格中自动生成序号技巧 表格如何自动排序仅需4步让Excel表格自动排序的方法 1.5匹富士空调电脑板开机就烧保险丝 为什么 修空调只是把拆了个压敏电阻,虽然可以运行,但这样没问题吗? 1.5富士空调电脑板一通电就烧保险丝为什么 java中的类型转换是什么 C语言中的类型转换 c++类型转换是什么? 什么是自动类型转换 简述C#中类型转换的方式 类型转换名词解释 C语言中数据类型转换的方式有几种? 紫红色怎么调染膏 紫色是用什么染膏调成的?步骤呢? 我想染粉紫色的头发该怎么调染膏 紫灰色头发怎么染?? 粉紫色染发膏怎么配? 染发中的紫色怎么调出来? 染发初学者怎么调配染膏的比例 染发调膏怎么调啊? 葡萄紫色的染膏比例? 黑色头发如何染紫红如何调配染膏 头发淡紫色染膏怎么调 紫色由哪两种颜色染膏可以配出来 染膏调颜色怎么调配? 在什么情况下会发生自动类型转换? C语言中类型强制转换什么意思?通俗点怎么解释,不要定义 华为nova5z和华为nova5i手机壳可以通用吗? 数据库中怎样进行类型转换 C语言数据类型如何转换? C语言 类型转换 Java中的强制类型转换是如何转换的? 什么是隐式类型转换?什么是显示类型转换 蒸汽挂烫机熨烫各种不同面料衣物温度是多少? 蒸汽挂烫机的温度多少比较合适?哪个牌子的产品符合这个温度? p飞利浦挂烫机蒸汽熨斗温度多少 挂烫机温控开关ksd301温度选择多少度? 飞利浦蒸汽挂烫机锅炉底部温控器是多少度?挂烫机型号GC511 飞利浦蒸汽挂烫机gc525温控是多少度 蒸汽挂烫机 能调温度吗 挂烫机里面的温控器是控制多少度的? 蒸汽挂烫机会不会烫坏衣服?怎样不会烫坏衣服? 家用挂烫机功率及调温档位是多少好用 市面上有哪些好用的手持挂烫机? 蒸汽挂烫机有什么优点?