> For the complete documentation index, see [llms.txt](https://www.pranaypourkar.co.in/the-programmers-guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.pranaypourkar.co.in/the-programmers-guide/algorithm/basic-notes.md).

# Basic Notes

## Excel Sheet

Excel organizes data into a **grid structure** consisting of **columns** and **rows**. Each cell is identified by a unique **address** derived from the column name and row number.

#### **1. Column Naming**

Columns in Excel are identified using **letters**:

* Columns are labeled from **A to Z** initially.
* After **Z**, the column names continue with two-letter combinations:
  * AA, AB, AC, ..., AZ, BA, BB, ..., BZ, CA, ..., and so on.
* This continues up to **XFD**, which is the last column in modern Excel versions (totaling 16,384 columns).

**Examples:**

* First column: **A**
* 26th column: **Z**
* 27th column: **AA**
* 702nd column: **ZZ**
* 703rd column: **AAA**
* Last column: **XFD**

#### **2. Row Naming**

Rows in Excel are identified using **numbers**:

* Rows are labeled starting from **1** and increment by 1 for each row.
* Modern Excel versions support up to **1,048,576 rows**.

**Examples:**

* First row: **1**
* 10th row: **10**
* 1,048,576th row: **1,048,576**

#### **3. Cell Addressing**

Each cell is uniquely identified by combining the **column letter** and the **row number**. For example:

* The first cell: **A1** (Column A, Row 1)
* A cell in the 5th column and 10th row: **E10**
* A cell in the 703rd column and 1st row: **AAA1**

## ASCII Character

**ASCII** (American Standard Code for Information Interchange) is a character encoding standard used to represent text in computers, communications equipment, and other devices. It uses numeric codes to map characters and symbols to their binary representations.

### **1. Key Features of ASCII**

1. **Standard ASCII**:
   * Represents **128 characters** (0 to 127).
   * Includes:
     * **Control characters** (0 to 31 and 127) for non-printable instructions like line breaks.
     * **Printable characters** (32 to 126) for symbols, digits, uppercase and lowercase letters.
2. **Extended ASCII**:
   * Represents **256 characters** (0 to 255) by extending the 7-bit ASCII with an 8th bit.
   * Adds additional symbols, graphical characters, and characters for non-English languages.

### **2. ASCII Character Groups**

#### **Control Characters (0–31, 127):**

Non-printable commands for controlling devices.

* Examples:
  * `0`: Null (\0)
  * `9`: Horizontal Tab (\t)
  * `10`: Line Feed (\n)
  * `13`: Carriage Return (\r)
  * `27`: Escape (ESC)

#### **Printable Characters (32–126):**

Human-readable symbols.

* **32–47**: Special symbols (e.g., `space`, `!`, `"`, `#`, `$`, `%`).
* **48–57**: Digits (0–9).
* **58–64**: More symbols (e.g., `:`, `;`, `<`, `=`, `>`).
* **65–90**: Uppercase letters (A–Z).
* **91–96**: Special symbols (e.g., `[`, `\`, `]`, `^`, `_`).
* **97–122**: Lowercase letters (a–z).
* **123–126**: Special symbols (e.g., `{`, `|`, `}`, `~`).

#### **Extended ASCII (128–255):**

Used in systems that support 8-bit encoding. Includes:

* Accented characters (e.g., `é`, `ñ`).
* Box-drawing symbols.
* Mathematical symbols.

## Power of 2

<table data-full-width="true"><thead><tr><th width="127">Power of 2</th><th>Exact Value</th><th width="212">Approximate Value</th><th>Equivalent in Storage (Bytes → KB, MB, GB, etc.)</th></tr></thead><tbody><tr><td>2⁰</td><td>1</td><td>1</td><td>1 Byte</td></tr><tr><td>2¹</td><td>2</td><td>2</td><td>2 Bytes</td></tr><tr><td>2²</td><td>4</td><td>4</td><td>4 Bytes (e.g., an <code>int</code> in Java)</td></tr><tr><td>2³</td><td>8</td><td>8</td><td>8 Bytes (e.g., a <code>long</code> in Java)</td></tr><tr><td>2⁴</td><td>16</td><td>16</td><td>16 Bytes</td></tr><tr><td>2⁵</td><td>32</td><td>32</td><td>32 Bytes</td></tr><tr><td>2⁶</td><td>64</td><td>64</td><td>64 Bytes</td></tr><tr><td>2⁷</td><td>128</td><td>128</td><td>128 Bytes</td></tr><tr><td>2⁸</td><td>256</td><td>256</td><td>256 Bytes (1 KB / 4 pages of text)</td></tr><tr><td>2⁹</td><td>512</td><td>512</td><td>512 Bytes</td></tr><tr><td>2¹⁰</td><td>1,024</td><td>~1K</td><td>1 KB</td></tr><tr><td>2²⁰</td><td>1,048,576</td><td>~1M (Million)</td><td>1 MB</td></tr><tr><td>2³⁰</td><td>1,073,741,824</td><td>~1B (Billion)</td><td>1 GB</td></tr><tr><td>2⁴⁰</td><td>1,099,511,627,776</td><td>~1T (Trillion)</td><td>1 TB</td></tr><tr><td>2⁵⁰</td><td>1,125,899,906,842,624</td><td>~1P (Quadrillion)</td><td>1 PB</td></tr><tr><td>2⁶⁰</td><td>1,152,921,504,606,846,976</td><td>~1E (Exabyte)</td><td>1 EB</td></tr></tbody></table>

## Java Datatype and Memory Size Table

<table data-full-width="true"><thead><tr><th width="131">Data Type</th><th width="122">Size (Bytes)</th><th>Size (Bits)</th><th width="181">Minimum Value</th><th width="219">Maximum Value</th><th>Default Value</th></tr></thead><tbody><tr><td><code>boolean</code></td><td>1 (JVM dependent)</td><td>8 (for alignment)</td><td><code>false</code></td><td><code>true</code></td><td><code>false</code></td></tr><tr><td><code>byte</code></td><td>1</td><td>8</td><td>-128</td><td>127</td><td>0</td></tr><tr><td><code>short</code></td><td>2</td><td>16</td><td>-32,768</td><td>32,767</td><td>0</td></tr><tr><td><code>char</code></td><td>2</td><td>16</td><td>0 (<code>\u0000</code>)</td><td>65,535 (<code>\uFFFF</code>)</td><td><code>\u0000</code></td></tr><tr><td><code>int</code></td><td>4</td><td>32</td><td>-2³¹ (-2,147,483,648)</td><td>2³¹-1 (2,147,483,647)</td><td>0</td></tr><tr><td><code>long</code></td><td>8</td><td>64</td><td>-2⁶³ (-9,223,372,036,854,775,808)</td><td>2⁶³-1 (9,223,372,036,854,775,807)</td><td>0L</td></tr><tr><td><code>float</code></td><td>4</td><td>32</td><td>~ ±3.4 × 10⁻³⁸</td><td>~ ±3.4 × 10³⁸</td><td>0.0f</td></tr><tr><td><code>double</code></td><td>8</td><td>64</td><td>~ ±1.7 × 10⁻³⁰⁸</td><td>~ ±1.7 × 10³⁰⁸</td><td>0.0d</td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://www.pranaypourkar.co.in/the-programmers-guide/algorithm/basic-notes.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
