source: public/doc/gnu-c/Mixed-Mode.html@ 02598c2

Last change on this file since 02598c2 was 02598c2, checked in by Mikhail Kirillov <w96k@…>, on Oct 6, 2022 at 12:36:29 PM

Add gnu-c

  • Property mode set to 100644
File size: 4.2 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<html>
3<!-- Copyright (C) 2022 Richard Stallman and Free Software Foundation, Inc.
4
5(The work of Trevis Rothwell and Nelson Beebe has been assigned or
6licensed to the FSF.)
7
8Permission is granted to copy, distribute and/or modify this document
9under the terms of the GNU Free Documentation License, Version 1.3 or
10any later version published by the Free Software Foundation; with the
11Invariant Sections being "GNU General Public License," with the
12Front-Cover Texts being "A GNU Manual," and with the Back-Cover
13Texts as in (a) below. A copy of the license is included in the
14section entitled "GNU Free Documentation License."
15
16(a) The FSF's Back-Cover Text is: "You have the freedom to copy and
17modify this GNU manual. Buying copies from the FSF supports it in
18developing GNU and promoting software freedom." -->
19<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ -->
20<head>
21<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
22<title>Mixed Mode (GNU C Language Manual)</title>
23
24<meta name="description" content="Mixed Mode (GNU C Language Manual)">
25<meta name="keywords" content="Mixed Mode (GNU C Language Manual)">
26<meta name="resource-type" content="document">
27<meta name="distribution" content="global">
28<meta name="Generator" content="makeinfo">
29<link href="index.html" rel="start" title="Top">
30<link href="Symbol-Index.html" rel="index" title="Symbol Index">
31<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
32<link href="Arithmetic.html" rel="up" title="Arithmetic">
33<link href="Division-and-Remainder.html" rel="next" title="Division and Remainder">
34<link href="Signed-Overflow.html" rel="prev" title="Signed Overflow">
35<style type="text/css">
36<!--
37a.summary-letter {text-decoration: none}
38blockquote.indentedblock {margin-right: 0em}
39div.display {margin-left: 3.2em}
40div.example {margin-left: 3.2em}
41div.lisp {margin-left: 3.2em}
42kbd {font-style: oblique}
43pre.display {font-family: inherit}
44pre.format {font-family: inherit}
45pre.menu-comment {font-family: serif}
46pre.menu-preformatted {font-family: serif}
47span.nolinebreak {white-space: nowrap}
48span.roman {font-family: initial; font-weight: normal}
49span.sansserif {font-family: sans-serif; font-weight: normal}
50ul.no-bullet {list-style: none}
51-->
52</style>
53
54
55</head>
56
57<body lang="en">
58<span id="Mixed-Mode"></span><div class="header">
59<p>
60Next: <a href="Division-and-Remainder.html" accesskey="n" rel="next">Division and Remainder</a>, Previous: <a href="Integer-Overflow.html" accesskey="p" rel="prev">Integer Overflow</a>, Up: <a href="Arithmetic.html" accesskey="u" rel="up">Arithmetic</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Symbol-Index.html" title="Index" rel="index">Index</a>]</p>
61</div>
62<hr>
63<span id="Mixed_002dMode-Arithmetic"></span><h3 class="section">6.4 Mixed-Mode Arithmetic</h3>
64
65<p>Mixing integers and floating-point numbers in a basic arithmetic
66operation converts the integers automatically to floating point.
67In most cases, this gives exactly the desired results.
68But sometimes it matters precisely where the conversion occurs.
69</p>
70<p>If <code>i</code> and <code>j</code> are integers, <code>(i + j) * 2.0</code> adds them
71as an integer, then converts the sum to floating point for the
72multiplication. If the addition gets an overflow, that is not
73equivalent to converting both integers to floating point and then
74adding them. You can get the latter result by explicitly converting
75the integers, as in <code>((double) i + (double) j) * 2.0</code>.
76See <a href="Explicit-Type-Conversion.html">Explicit Type Conversion</a>.
77</p>
78<p>Adding or multiplying several values, including some integers and some
79floating point, does the operations left to right. Thus, <code>3.0 +
80i + j</code> converts <code>i</code> to floating point, then adds 3.0, then
81converts <code>j</code> to floating point and adds that. You can specify a
82different order using parentheses: <code>3.0 + (i + j)</code> adds <code>i</code>
83and <code>j</code> first and then adds that result (converting to floating
84point) to 3.0. In this respect, C differs from other languages, such
85as Fortran.
86</p>
87
88
89
90</body>
91</html>
Note: See TracBrowser for help on using the repository browser.