File: IntegerConstants.html

package info (click to toggle)
arduino 0018%2Bdfsg-6
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 5,704 kB
  • ctags: 8,331
  • sloc: java: 38,036; ansic: 5,841; cpp: 2,867; makefile: 667; perl: 111; sh: 10
file content (140 lines) | stat: -rw-r--r-- 6,932 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
  <title>Arduino - IntegerConstants </title>
  <link rel='stylesheet' href='arduino.css' type='text/css' />
  <meta name="verify-v1" content="TtxFIEJAB6zdJ509wLxjnapQzKAMNm9u0Wj4ho6wxIY=" />
</head>
<body>
<div id="page">
<!--PageHeaderFmt-->
<div id="pageheader">
  <div class="title"><a href="http://www.arduino.cc"/>Arduino</a></div>
  <div class="search">
    <!-- SiteSearch Google -->
    <FORM method=GET action="http://www.google.com/search">
    <input type=hidden name=ie value=UTF-8>
    <input type=hidden name=oe value=UTF-8>
    <INPUT TYPE=text name=q size=25 maxlength=255 value="">
    <INPUT type=submit name=btnG VALUE="search">
    <input type=hidden name=domains value="http://www.arduino.cc/">
    <input type=hidden name=sitesearch value="http://www.arduino.cc/">
    </FORM>
    <!-- SiteSearch Google -->
  </div>
</div>
<!--/PageHeaderFmt-->
<!--PageLeftFmt-->
<div id="pagenav" style="text-align: right">
  <div style="float: left;">
  <p><a class='wikilink' href='http://arduino.cc/en/Main/Buy'>Buy</a>
|
<a class='wikilink' href='http://arduino.cc/en/Main/Software'>Download</a>
|
<a class='wikilink' href='Guide_index.html'>Getting Started</a>
|
<a class='wikilink' href='http://arduino.cc/en/Tutorial/HomePage'>Learning</a>
|
<a class='wikilink' href='index.html'>Reference</a>
|
<a class='wikilink' href='http://arduino.cc/en/Main/Hardware'>Hardware</a>
|
<a class='wikilink' href='FAQ.html'>FAQ</a>
</p>
<p class='vspace'></p>

  </div>
  <a class="urllink" href="http://www.arduino.cc/blog/" rel="nofollow">Blog &raquo;</a> |
  <a class="urllink" href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl" rel="nofollow">Forum &raquo;</a> |
  <a class="urllink" href="http://www.arduino.cc/playground/" rel="nofollow">Playground &raquo;</a>
</div>
<!--/PageLeftFmt-->
<div id="pagetext">
<!--PageText-->
<div id='wikitext'>
<p><strong>Reference</strong> &nbsp;  <a class='wikilink' href='index.html'>Language</a> (<a class='wikilink' href='Extended.html'>extended</a>) | <a class='wikilink' href='Libraries.html'>Libraries</a> | <a class='wikilink' href='Comparison.html'>Comparison</a> | <a class='wikilink' href='Changes.html'>Changes</a>
</p>
<p class='vspace'></p><h2>Integer Constants</h2>
<p>Integer constants are numbers used directly in a sketch, like <code>123</code>.  By default, these numbers are treated as <a class='wikilink' href='Int.html'>int</a>'s but you can change this with the U and L modifiers (see below).
</p>
<p class='vspace'></p><p>Normally, integer constants are treated as base 10 (decimal) integers, but special notation (formatters) may be used to enter numbers in other bases.  
</p>
<p class='vspace'></p><pre>
Base               Example    Formatter        Comment

10 (decimal)           123    none

2 (binary)        B1111011    leading 'B'      only works with 8 bit values (0 to 255)
                                               characters 0-1 valid

8 (octal)             0173    leading "0"      characters 0-7 valid       

16 (hexadecimal)      0x7B    leading "0x"     characters 0-9, A-F, a-f valid    

</pre>
<p class='vspace'></p><p><strong>Decimal</strong> is base 10. This is the common-sense math with which you are acquainted. Constants without other prefixes are assumed to be in decimal format.
</p>
<p class='vspace'></p>Example:<pre>
101     // same as 101 decimal   ((1 * 10^2) + (0 * 10^1) + 1)
</pre>
<p><br />
<strong>Binary</strong> is base two.  Only characters 0 and 1 are valid. 
</p>
<p class='vspace'></p>Example:<pre>
B101    // same as 5 decimal   ((1 * 2^2) + (0 * 2^1) + 1)
</pre>
<p>The binary formatter only works on bytes (8 bits) between 0 (B0) and 255 (B11111111). If it is convenient to input an int (16 bits) in binary form you can do it a two-step procedure such as:
</p>
<p class='vspace'></p><pre>
myInt = (B11001100 * 256) + B10101010;    // B11001100 is the high byte

</pre>
<p class='vspace'></p><p><strong>Octal</strong> is base eight.  Only characters 0 through 7 are valid. Octal values are indicated by the prefix "0"
</p>
<p class='vspace'></p><p>Example:
</p><pre>
0101    // same as 65 decimal   ((1 * 8^2) + (0 * 8^1) + 1) 
</pre><div class='indent'>Warning
</div><div class='indent'>It is possible to generate a hard-to-find bug by (unintentionally) including a leading zero before a constant and having the compiler unintentionally interpret your constant as octal.
</div><p><br />
<strong>Hexadecimal (or hex)</strong> is base sixteen. Valid characters are 0 through 9 and letters A through F; A has the value 10, B is 11, up to F, which is 15. Hex values are indicated by the prefix "0x". Note that A-F may be syted in upper or lower case (a-f).
</p>
<p class='vspace'></p><p>Example:
</p><pre>
0x101   // same as 257 decimal   ((1 * 16^2) + (0 * 16^1) + 1)

</pre>
<p class='vspace'></p><h4>U &amp; L formatters</h4>
<p>By default, an integer constant is treated as an <a class='wikilink' href='Int.html'>int</a> with the attendant limitations in values.  To specify an integer constant with another data type, follow it with:
</p>
<p class='vspace'></p><ul><li>a 'u' or 'U' to force the constant into an unsigned data format. Example: <code>33u</code>
</li><li>a 'l' or 'L' to force the constant into a long data format. Example: <code>100000L</code>
</li><li>a 'ul' or 'UL' to force the constant into an unsigned long constant. Example: <code>32767ul</code> 
</li></ul><p><br />
</p>
<p class='vspace'></p><h4>See also</h4>
<ul><li><a class='wikilink' href='Constants.html'>constants</a>
</li><li><a class='wikilink' href='Define.html'>#define</a>
</li><li><a class='wikilink' href='Byte.html'>byte</a>
</li><li><a class='wikilink' href='Int.html'>int</a>
</li><li><a class='wikilink' href='UnsignedInt.html'>unsigned int</a>
</li><li><a class='wikilink' href='Long.html'>long</a>
</li><li><a class='wikilink' href='UnsignedLong.html'>unsigned long</a>
</li></ul><p class='vspace'></p><p><a class='wikilink' href='index.html'>Reference Home</a>
</p>
<p class='vspace'></p><p><em>Corrections, suggestions, and new documentation should be posted to the <a class='urllink' href='http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?board=swbugs' rel='nofollow'>Forum</a>.</em>
</p>
<p class='vspace'></p><p>The text of the Arduino reference is licensed under a
<a class='urllink' href='http://creativecommons.org/licenses/by-sa/3.0/' rel='nofollow'>Creative Commons Attribution-ShareAlike 3.0 License</a>.  Code samples in the reference are released into the public domain.
</p>
</div>

</div>
<!--PageFooterFmt-->
<div id="pagefooter">
  <a href='#'>Edit Page</a> | <a href='#'>Page History</a> | <a href='#' target='_blank'>Printable View</a> | <a href='http://arduino.cc/en/Site/AllRecentChanges'>All Recent Site Changes</a>
</div>
<!--/PageFooterFmt-->
</div>
</body>
</html>