<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>LINUXQQ &#187; 各类数值型数据之间的混合运算</title>
	<atom:link href="http://www.linuxqq.net/archives/tag/%e5%90%84%e7%b1%bb%e6%95%b0%e5%80%bc%e5%9e%8b%e6%95%b0%e6%8d%ae%e4%b9%8b%e9%97%b4%e7%9a%84%e6%b7%b7%e5%90%88%e8%bf%90%e7%ae%97/feed" rel="self" type="application/rss+xml" />
	<link>http://www.linuxqq.net</link>
	<description>LINUXQQ狂人时代</description>
	<lastBuildDate>Tue, 10 Jan 2012 04:39:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>C 各类数值型数据之间的混合运算</title>
		<link>http://www.linuxqq.net/archives/70.html</link>
		<comments>http://www.linuxqq.net/archives/70.html#comments</comments>
		<pubDate>Fri, 19 Sep 2008 02:34:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C语言]]></category>
		<category><![CDATA[各类数值型数据之间的混合运算]]></category>

		<guid isPermaLink="false">http://www.linuxqq.net/?p=70</guid>
		<description><![CDATA[各类数值型数据之间的混合运算 变量的数据类型是可以转换的。转换的方法有两种，一种是自动转换，一种是强制转换。自动转换发生在不同数据类型的量混合运算时，由编译系统自动完成。自动转换遵循以下规则： 1) 若参与运算量的类型不同，则先转换成同一类型，然后进行运算。 2) 转换按数据长度增加的方向进行，以保证精度不降低。如int型和long型运算时，先把int量转成long型后再进行运算。 3) 所有的浮点运算都是以双精度进行的，即使仅含float单精度量运算的表达式，也要先转换成double型，再作运算。 4) char型和short型参与运算时，必须先转换成int型。 5) 在赋值运算中，赋值号两边量的数据类型不同时，赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度左边长时，将丢失一部分数据，这样会降低精度，丢失的部分按四舍五入向前舍入。 下图表示了类型自动转换的规则。 七、条件运算符 条件运算符(?:)是C语言中唯一的一个三目运算符，它是对第一个表达式作真/假检测，然后根据结果返回两外两个表达式中的一个。 ?: 在运算中，首先对第一个表达式进行检验，如果为真，则返回表达式2的值；如果为假，则返回表达式3的值。 例如： a=(b>0)?b:-b; 当b>0时，a=b；当b不大于0时，a=-b；这就是条件表达式。其实上面的意思就是把b的绝对值赋值给a。 逻辑运算符 逻辑运算符是根据表达式的值来返回真值或是假值。其实在C语言中没有所谓的真值和假值，只是认为非0为真值，0为假值。 符号 功能 &#038;&#038; 逻辑与 &#124;&#124; 逻辑或 ! 逻辑非 例如： 5!3; 0&#124;&#124;-2&#038;&#038;5; !4; 当表达式进行&#038;&#038;运算时，只要有一个为假，总的表达式就为假，只有当所有都为真时，总的式子才为真。当表达式进行&#124;&#124;运算时，只要有一个为真，总的值就为真，只有当所有的都为假时，总的式子才为假。逻辑非(!)运算是把相应的变量数据转换为相应的真/假值。若原先为假，则逻辑非以后为真，若原先为真，则逻辑非以后为假。 还有一点很重要，当一个逻辑表达式的后一部分的取值不会影响整个表达式的值时，后一部分就不会进行运算了。例如： a=2,b=1; a&#124;&#124;b-1; 因为a=2，为真值，所以不管b-1是不是真值，总的表达式一定为真值，这时后面的表达式就不会再计算了。 七、条件运算符 条件运算符(?:)是C语言中唯一的一个三目运算符，它是对第一个表达式作真/假检测，然后根据结果返回两外两个表达式中的一个。 ?: 在运算中，首先对第一个表达式进行检验，如果为真，则返回表达式2的值；如果为假，则返回表达式3的值。 例如： a=(b>0)?b:-b; 当b>0时，a=b；当b不大于0时，a=-b；这就是条件表达式。其实上面的意思就是把b的绝对值赋值给 九、优先级和结合性 从上面的逗号运算符那个例子可以看出，这些运算符计算时都有一定的顺序，就好象先要算乘除后算加减一样。优先级和结合性是运算符两个重要的特性，结合性又称为计算顺序，它决定组成表达式的各个部分是否参与计算以及什么时候计算。 下面是C语言中所使用的运算符的优先级和结合性： 优先级 运算符 结合性 (最高) () [] [...]]]></description>
		<wfw:commentRss>http://www.linuxqq.net/archives/70.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

