c语言双目运算符两边的运算数类型不一致系统自动转换的规则是啥?比如1.0/2=0.5那为啥不是1.0/2=0呢?

author author     2023-03-26     314

关键词:

C语言允许不同类型数据进行混合运算,但是要遵循一定的规则,使运算符两边的数据类型一致。

转换原则:将运算符两边的数据转换为它们之中数据最长的数据类型,以保证运算精度不会降低。

上图中,(1) 横向箭头表示必须进行转换,即使运算符两边都是float类型的数据,同样需要将float转换为double类型,在进行运算,运算结果为double类型,已保证运算精度。(2) 纵向箭头表示仅当运算符两边的数据类型不一致时才进行转换的方向。且箭头方向从下至上表示低级别数据类型向高级别数据类型转换。

参考技术A 系统的转换规则如下:由此可以知道,系统是把1.0和2都转换成double型数据再进行运算的。

c语言中的数据类型转换

...型转换为左边的类型。2)强制转换:由强制转换运算符完成转换1自动转换自动转换发生在不同数据类型的变量混合运算时,由编译系统自动完成。类型自动转换的规则如下:1)若参与运算量的类型不同,... 查看详情

c语言,自动类型转换怎么做?

C语言数据类型转换自转换强制转换两类自转换自转换发同数据类型量混合运算由编译系统自完自转换遵循规则:1.若参与运算量类型同则先转换同类型进行运算2.转换按数据度增加向进行保证精度降低int型long型运算先int量转long型... 查看详情

已知inti;floatf;,由以下选项中正确的语句是()。

...是正确的编程语句。选项分析:A选项为语法错误,取余运算符的左右两边应该是整形的变量,所以说表达式中括号的意思应该是要进行类型的转换,强制类型转换为在变量的前面加上“(类型)”,所以说A选项正确的形式为:... 查看详情

java在啥情况下会发生自动类型转换

... 参考技术C任何时候都不会自动类型转换。java属于强类型语言。只有你强制类型转换。 查看详情

2数据类型和运算符——基本类型的类型转换(代码片段)

 Java语言所提供的7种数据类型(不包括boolean)之间可以相互转换,有两种类型转换方式:自动类型转换和强制类型转换。一、自动类型转换  Java所有数值类型可以相互转换,如果系统支持把某种基本类型的值直接赋给另... 查看详情

c语言运算符

优先级运算符(红字加粗)名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右—()圆括号(表达式)函数名(形参名).成员选择(对象)对象.成员名->成员选择(指针)对象指针->成员名2 +,-正号/负号运算符&n... 查看详情

c语言中,赋值运算符两边应该注意的全部问题?非常感谢!

赋值运算符坐边必须是定义后的变量名,右边可以是常量和变量,或表达式。特别要注意左边的数据类型要大于等于右边,例如左边如果是整型,右边不要是浮点型,不然会存在截取问题,还要注意右边表达式中运算符的优先级... 查看详情

c语言运算符优先级

优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右 ()圆括号(表达式)函数名(形参表) .成员选择(对象)对象.成员名 ->成员选择(指针)对象指针->成员名 2-负号运算符-表... 查看详情

运算符和表达式(类型转换)

和其他程序设计语言一样,C语言中表示运算的符号称为运算符。运算符是告诉编译程序执行特定算术或逻辑操作的符号,运算的对象称为操作数。对一个操作数进行运算的运算符称为单目运算符,对两个操作数进行运算的运算... 查看详情

c语言类型的自动转换时,啥类型能转换成啥类型呀?、嘿嘿,比如类型和decimal类型混合在一个表达

比如类型和decimal类型混合在一个表达式,不能自动提升为decimal??还有啊,字符常量必须用‘’吗??、(char)97是吗??1短的向长的转换;inta;shortb;计算a+b,先将b转为int,再做加法。2int,float向double转换;3+3.14先将3转这double,再... 查看详情

c强制类型转换与隐式转换

一、隐式类型转换       如果一个运算符两边的运算数类型不同,先要将其转换为相同的类型,即较低类型转换为较高类型,然后再参加运算,转换规则如下图所示:       图中横向箭头表示必须的转... 查看详情

在c语言中赋值运算符有啥作用?

赋值符号"="就是赋值运算符,作用是将一个数据赋给一个变量或将一个变量的值赋给另一个变量,由赋值运算符组成的表达式称为赋值表达式。一般形式为:变量名=表达式在程序中可以多次给一个变量赋值,每赋一次值... 查看详情

c语言的浮点型怎么转换为整型?

...是舍去小数部分,能用于你的问题。2、C/C++中的整数除法运算符“/”本身 查看详情

2018秋季c语言学习总结(代码片段)

...t整型,float浮点型,double双精度浮点型,char字符型3.算数运算符+加法,-减法,*乘法,/除法,%求余,对于整数间的除法是采取直接舍弃小数部分的方式,而不是什么四舍五入噢。对于浮点数间的除法则能获得一个相对逼近结果... 查看详情

数据类型转换(代码片段)

...uble保存在byte、int、short、long等空间。案例代码/*+:是一个运算符,做加法运算的。我们在做运算的时候,一般要求参与运算的数据类型必须一致。类型转换:隐式转换强制转换隐式转换byte,short,char--int--long--float--double*/publicclassTyp... 查看详情

day6-类型转换

...把数据从一种类型转换另一种类型我们要求等号两边参与运算符必须类型一致,如果不一致,满足下列条件会发生自动类型转换或者隐式类型转换。--以安全方式进行的转换,不会导致数据丢失隐士类型转换:1.两种类型兼容:&nbs... 查看详情

c语言的按位运算符怎么操作!?

...得C语言也能像汇编语言一样用来编写系统程序。一、位运算符C语言提供了六种位运算符:&按位与|按位或^按位异或~取反<<左移>>右移1.按位与运算按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应... 查看详情

c语言数据类型转换规则(隐式转换+显式转换)(代码片段)

...ang1126/article/details/125297300赋值过程中的类型转换如果赋值运算符两侧的类型不一致,但都是基本类型时,在赋值时要进行类型转换。类型转换是由系统自动进行的,转换的规则是:将浮点型数据(包括单、双精度)... 查看详情