<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: sushi</title>
    <description>The latest articles on DEV Community by sushi (@sushi7).</description>
    <link>https://dev.to/sushi7</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3207488%2Fca1c6c65-14d5-4868-935f-8933e2c591bc.jpg</url>
      <title>DEV Community: sushi</title>
      <link>https://dev.to/sushi7</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sushi7"/>
    <language>en</language>
    <item>
      <title>Understanding Bytes, Bits, and Data Types in C++</title>
      <dc:creator>sushi</dc:creator>
      <pubDate>Sun, 25 May 2025 22:06:36 +0000</pubDate>
      <link>https://dev.to/sushi7/understanding-bytes-bits-and-data-types-in-c-5gih</link>
      <guid>https://dev.to/sushi7/understanding-bytes-bits-and-data-types-in-c-5gih</guid>
      <description>&lt;p&gt;If you’ve ever wondered how numbers are stored in C++ and what terms like signed, unsigned this guide is for you! Let’s break everything down step-by-step in the simplest way possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are Bits and Bytes?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bit&lt;/strong&gt; = Smallest piece of data in computers (either &lt;code&gt;0&lt;/code&gt; or &lt;code&gt;1&lt;/code&gt; → like a light switch: OFF or ON)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Byte&lt;/strong&gt; = Group of 8 bits (1 Byte = 8 Bits)&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Bytes&lt;/th&gt;
&lt;th&gt;Bits&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;32&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  🔢 Example: How Many Bytes Does &lt;code&gt;10000&lt;/code&gt; Use?
&lt;/h2&gt;

&lt;p&gt;To store &lt;code&gt;10000&lt;/code&gt;, we must first convert it to &lt;strong&gt;binary&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;Division&lt;/th&gt;
&lt;th&gt;Quotient&lt;/th&gt;
&lt;th&gt;Remainder&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;10000 ÷ 2&lt;/td&gt;
&lt;td&gt;5000&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;5000 ÷ 2&lt;/td&gt;
&lt;td&gt;2500&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;2500 ÷ 2&lt;/td&gt;
&lt;td&gt;1250&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;1250 ÷ 2&lt;/td&gt;
&lt;td&gt;625&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;625 ÷ 2&lt;/td&gt;
&lt;td&gt;312&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;312 ÷ 2&lt;/td&gt;
&lt;td&gt;156&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;156 ÷ 2&lt;/td&gt;
&lt;td&gt;78&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;78 ÷ 2&lt;/td&gt;
&lt;td&gt;39&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;39 ÷ 2&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;19 ÷ 2&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;9 ÷ 2&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;4 ÷ 2&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;2 ÷ 2&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;1 ÷ 2&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Final Binary: &lt;code&gt;10011100010000&lt;/code&gt; → &lt;strong&gt;14 bits&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So &lt;code&gt;10000&lt;/code&gt; needs &lt;strong&gt;14 bits&lt;/strong&gt;, which fits inside &lt;strong&gt;2 bytes (16 bits)&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
We can use the &lt;code&gt;short&lt;/code&gt; data type to store this.&lt;/p&gt;


&lt;h2&gt;
  
  
  📊 C++ Integer Types – Size, Range &amp;amp; Use Cases
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frdxdnafpg34hmv6ja377.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frdxdnafpg34hmv6ja377.png" alt="Image" width="800" height="278"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;code&gt;char&lt;/code&gt; – For Single Characters
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;You want to store a single character like 'A', '5', or '#'
-Internally, it’s stored as a number using ASCII codes (e.g., 'A' = 65)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Use When:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Saving memory with small numbers&lt;/li&gt;
&lt;li&gt;Embedded systems or memory-limited devices&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Example:
&lt;/h4&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;char grade = 'A';
char symbol = '#';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;code&gt;short&lt;/code&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Size:&lt;/strong&gt; 2 bytes (16 bits)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Range:&lt;/strong&gt; –32,768 to 32,767&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Use When:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Saving memory with small numbers&lt;/li&gt;
&lt;li&gt;Embedded systems or memory-limited devices&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Avoid For:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Storing full words or big numbers&lt;/li&gt;
&lt;li&gt;Large values like bank balances&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Example:
&lt;/h4&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;short age = 22;
short temp = -10;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;code&gt;int&lt;/code&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Size:&lt;/strong&gt; 4 bytes (32 bits)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Range:&lt;/strong&gt; –2,147,483,648 to +2,147,483,647
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  ✅ Use When:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;General-purpose integer storage
&lt;/li&gt;
&lt;li&gt;Loop counters, indexes, calculations
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  🧾 Example:
&lt;/h4&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;int population = 1000000;
int marks = 95;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;code&gt;long&lt;/code&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Size:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;4 bytes on 32-bit systems
&lt;/li&gt;
&lt;li&gt;8 bytes on most 64-bit Linux/macOS systems
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Range:&lt;/strong&gt; Varies with size&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  ✅ Use When:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;You need bigger numbers than &lt;code&gt;int&lt;/code&gt; but smaller than &lt;code&gt;long long&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Storing large IDs, timestamps&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  🧾 Example:
&lt;/h4&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;long distance = 123456789;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;💡 Note:&lt;br&gt;
Windows 64-bit uses LLP64 model: long = 4 bytes&lt;br&gt;
Linux/macOS 64-bit use LP64 model: long = 8 bytes&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h3&gt;
  
  
  &lt;code&gt;long long&lt;/code&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Size:&lt;/strong&gt; 8 bytes (64 bits)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  ✅ Use When:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Handling very large numbers that don’t fit in &lt;code&gt;int&lt;/code&gt; or &lt;code&gt;long&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Competitive programming, large calculations, finance&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  🧾 Example:
&lt;/h4&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;long long bigAmount = 1000000000000;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What Do Signed and Unsigned Mean?
&lt;/h2&gt;

&lt;p&gt;Imagine a number line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;---- -3 -2 -1 0 1 2 3 ----&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🔁 Signed
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Can hold both &lt;strong&gt;negative and positive&lt;/strong&gt; numbers
&lt;/li&gt;
&lt;li&gt;Uses &lt;strong&gt;one bit&lt;/strong&gt; to indicate the sign (&lt;code&gt;0&lt;/code&gt; = positive, &lt;code&gt;1&lt;/code&gt; = negative)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;For 2 bytes (16 bits):&lt;/strong&gt;
Range = &lt;strong&gt;–32,768 to +32,767&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ➕ Unsigned
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Can hold &lt;strong&gt;only positive&lt;/strong&gt; numbers (including zero)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;All bits&lt;/strong&gt; are used to store the value
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;For 2 bytes (16 bits):&lt;/strong&gt;
Range = &lt;strong&gt;0 to 65,535&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔓 Real-life Analogy
&lt;/h3&gt;

&lt;p&gt;You have &lt;strong&gt;16 lockers (bits)&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If storing &lt;strong&gt;only positive numbers&lt;/strong&gt; (&lt;code&gt;unsigned&lt;/code&gt;), &lt;strong&gt;all 16 lockers&lt;/strong&gt; are used for the value.
&lt;/li&gt;
&lt;li&gt;If storing &lt;strong&gt;positive and negative numbers&lt;/strong&gt; (&lt;code&gt;signed&lt;/code&gt;), &lt;strong&gt;1 locker&lt;/strong&gt; is used for the sign, and &lt;strong&gt;15 lockers&lt;/strong&gt; are used for the number itself.&lt;/li&gt;
&lt;/ul&gt;




</description>
      <category>cpp</category>
      <category>datatype</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
