A tutorial on PC memory and hex arithmetic (2024)

Table of Contents
Author Licence FAQs
  • NAME
  • Funny Little Numbers
  • Abbreviations
  • A Detour
  • Memory Addresses
  • Common Values
  • A Memory Map
  • RAM
  • ROM
  • PROM = Programmable Read-Only Memory
  • EPROM = Erasable Programmable Read-Only Memory
  • POST = Power On Self Test.
  • BIOS = Basic Input-Output System
  • ROM BIOS
  • ROM BIOS Extensions
  • CMOS Memory = Complementary Metal-Oxide Semiconductor (read/write) Memory
  • Conventional Memory
  • Interrupt Vector Table
  • Extended Memory
  • Expansion Memory
  • XMS
  • Expanded Memory
  • EMS
  • LIM 3.2
  • EEMS
  • EMS 4.0
  • Expanded-Enhanced Confusion
  • Physical Memory
  • It matters, sometimes
  • Modes
  • A Real IBM AT
  • An Unreal Memorex Telex AT
  • Author
PC Memory - A tutorial on PC memory and hex arithmeticThe craft of programming is replete (filled to excess) with funny littlenumbers.

In this article I shall refer to numbers in two ways.

One way is to specify the number in decimal, just by stating it. Eg: 1024.

The other way is to specify the number in hexadecimal. I shall use theconvention of preceding every hex number with 0x. Eg: 0xF = 15.

Other writers use the convention of appending an 'h' or an 'H' to hexnumbers. Thus FH = Fh = 15.

 1 Kb = 1 Kilobyte = 1024 bytes. 1 Mb = 1 Megabyte = 1024 * 1 Kb = 1,048,576 bytes. 1 Gb = 1 Gigabyte = 1024 * 1 Mb = heaps.
The preceding would suggest 360 Kb floppies hold 360 * 1024 = 368,640 bytesof data. They don't.

Floppy disk sizes (that is, available space):

 360 Kb = 362,496 bytes. 720 Kb = 730,112 bytes. 1.2 Mb = 1,213,592 bytes. 1.44 Mb = 1,457,664 bytes.
Just to make things difficult, memory addresses are normally written not asone but as two hex numbers. Eg: 0x9FFF:000F. On the left of the colon isthe Segment part, and on the right is the Offset part.

What does this number really mean? Well, the Segment and Offset parts areadded by shifting the Segment left one (hex) digit and then adding theOffset, thus:

 0x9FFF0 + 0x 000F = 0x9FFFF = 655,359

Now, 0 to 655,359 is the same as 1 to 655,360. That is, 1 to 640 Kb. Lo andbehold! The infamous 640 Kb DOS memory limit consists of memory addressesfrom 0 to 655,359, that is, 0 to 0x9FFF:000F.

Another example: 1 Mb of memory occupies addresses from 0 to 0xFFFF:000F.That is, since 1 Mb = 1,048,576, 0 to

 0xFFFF0 + 0x 000F = 0xFFFFF = 1,048,575

Note also that a memory address can be written in many equivalent ways.0x000F:0045 = 0x0010:0035 = 0x0011:0025 = 0x0013:0005.

Let's see what these mean:

 0x00130 + 0x 0005 = 0x00135 = 309
 0x000F0 + 0x 0045 = 0x00135 = 309

That is, all represent physical address 309. By convention, when the Offsetpart is from 0 to 0xF the address is said to be Normalized. Thus0x0013:0005 is Normalized, whereas the other forms aren't.

 0xFFFF = 65535 0xFF = 255

Since 0xFF = 255, then 0 to 0xFF = 0 to 255. Now, in 0 to 255 there are 256different values, which is precisely how many different values can berepresented in 8 bits. And 8 bits is a byte!

So all values from 0 to 0xFF can be stored in 1 byte, and all values from 0to 0xFFFF can be stored in 2 bytes (1 word on some machines. Some machinesuse 4 bytes per word).

Consequently, it takes 2 bytes to hold a Segment part and 2 bytes to holdan Offset part.

Finally then, it takes 4 bytes to hold a complete memory address of theform Segment:Offset.

 1 Mb = 0x10000:0000
 1 Mb-1 = 0xFFFF:000F End System BIOS area 960 Kb 0xF000:0000 | = 128 Kb 896 Kb 0xE000:0000 Start System BIOS area
 896 Kb-1 = 0xDFFF:000F End Expansion card BIOS area 832 Kb 0xD000:0000 | = 128 Kb 768 Kb 0xC000:0000 Start Expansion card BIOS area
 768 Kb-1 = 0xBFFF:000F End Video RAM 704 Kb 0xB000:0000 | = 128 Kb 640 Kb 0xA000:0000 Start Video RAM
 640 Kb-1 = 0x9FFF:000F End DOS RAM 576 Kb 0x9000:0000 | 512 Kb 0x8000:0000 | 448 Kb 0x7000:0000 | 384 Kb 0x6000:0000 | 320 Kb 0x5000:0000 | = 640 Kb 256 Kb 0x4000:0000 | 192 Kb 0x3000:0000 | 128 Kb 0x2000:0000 | 64 Kb 0x1000:0000 | 0 Kb 0x0000:0000 Start DOS RAM
Random Access (read/write) Memory. This is a generic term which appliesequally to Conventional Memory, Expansion Memory, Extended Memory, ExpandedMemory and (perhaps) CMOS Memory.Read-Only Memory. A chip with an unchangeable bit pattern burned into it.The bit pattern may in fact be data or a program.Writing into a read-only chip sounds like a contradiction in terms. What itmeans is that by putting the chip in some piece of special equipment (aPROM burner) the input current can be made so high that a bit pattern isforced into the chip despite its 'read-only' design.

When such a chip is put in a PC it is read-only because the design of thePC ensures such high currents do not appear on the chip's input lines,except during a catastrophe!

In other words, you can obliterate the existing bit pattern and re-programthe chip, perhaps repeatedly, as you debug the program.

In contradistinction to the English saying 'crash-and-burn', thisprogramming technique is called 'burn-and-crash'. First you burn theprogram into the chip. Then you run the program and it crashes...

That is, when the power is switched on, the machine runs a self-testprogram. Guess where the POST program is stored. Right! In ROM. Part ofthis self-test is the determination of the amount of physical memory in themachine. The result is stored in CMOS.This is actually the name of a program which has been burned into a chip.The chip is a ROM chip.

This BIOS is a feature of Intel microprocessors, rather than of DOS. See p68 of The MS-DOS Encyclopedia.

When the computer starts running the microprocessor automatically beginsexecuting code at 0xFFFF:0000. It does this by setting the Code Segment(CS) register to segment 0xFFFF, and the Instruction Pointer (IP) registerto 0x0000.

Thus CS:IP points to (contains) 0xFFFF:0000, and it is from this addressthat the CPU takes the next instruction to be executed.

This instruction is usually a jump to the BIOS's initialization code, afterwhich the code scans bootable drives looking for a copy of DOS (or someother operating system) to load and run.

Same as BIOS.More programs in ROM chips. Usually, each expansion card in your machinewill have on it a ROM chip containing a program - a ROM BIOS Extension. Theprogram is dedicated to control of that expansion card.

ROM BIOS Extensions are sometimes called Supplementary ROM support.

These ROM BIOS Extensions are executed at boot time because the one trueROM BIOS scans memory addresses from 0xC000:0000 to 0xE800:0000 (or, saysthe MS-DOS Encyclopedia, from 0xA000:0000 to 0xF000:0000) in 2 Kb jumps,looking for signature bytes. These bytes, 0x55 0xAA I believe, indicatecode is lurking at that address, waiting to be executed.

When the BIOS code sees the signature it jumps to that address (or maybejust beyond it), and the code is executed. This gives the ROM BIOSExtension the chance the strut its stuff. Most likely it will do twothings: (1) Execute initialization code, and (2) store into DOS's InterruptTable the address of its Strategy Routine - that is the code to which DOSis to jump when an interrupt of the appropriate type occurs.

You can look for this signature using Debug as follows. The '-' below isDebug's prompt. The 'd' means dump (i.e. display) memory starting from thegiven address. The 'q' means quit. Each line is terminated with an<Enter>. This process is quite safe.

Warning. Hex numbers in Debug do not have 0x signs.

 C:\>debug -d C000:0 -d C800:0 -q

The output looks like:

 C000:0000 55 AA ... C000:0010 AB CD ...

This means Segment 0xC000 is being dumped. The first line consists of byteswhose Offsets are 0x0000 to 0x000F (0 to 15). The second consists of bytes0x0010 to 0x001F (16 to 31).

Debug always puts a '-' in the middle of the line.

Alternately, run the Norton utility SI - System Information.

Another example: At 0xFFFF:000E is the machine ID byte. If you examine thisbyte you might find one of these values:

 Value Machine 0xFF PC 0xFE XT 0xFD PC jr 0xFC AT 0xFB XT/2 0xFA PS/2 model 30 0xF9 Convertible 0xF8 PS/2 model 80

Try

 C:\>debug -d FFFF:0 -q

The output looks like:

 FFFF:0000 EA 5B E0 00 F0 30 31 2F-31 35 2F 38 38 FF FC 00 .[...01/15/88...

30 31 2F 31 35 2F 38 38 is just 01/15/88, i.e. a date in Month/Day/Yearformat.

Further, since this line is bytes 0x0000 to 0x000F, the second last is byte0x000E, i.e. 0xFFFF:000E. You can see its value is 0xFC. Thus the machineis an AT.

Given a lot of other information which I'll skip, it is possible todetermine the machine sub-model. Eg: there are three (3) types of XTs, notcounting the PS/2 pseudo-XTs.

In other words, RAM.

CMOS is only present in AT class machines. Earlier machines, PCs and XTs,don't have it.

This type of RAM consumes an extremely small amount of power. The data init is preserved, when the machine's power is off, by torch-style batteries.

CMOS holds certain configuration data describing the machine's hardware, aswell as the date and time.

CMOS normally consists of just 64 bytes.

Many AT class machines come with a program called SETUP which allows you toread and write the values in CMOS. In some machines this program is not ondisk, but in ROM. During the POST the checksum of the CMOS is calculated,and if the calculated value does not match the value stored in CMOS theSETUP program is run, or at least a message appears giving you a choice ofrunning it or ignoring the error.

Of course, given the format of the CMOS memory and the format of the readand write commands required, you can access this memory with your ownprogram.

This is the term for memory up to 1 Mb.

This Conventional Memory is directly addressable by an Intel microprocessor(running DOS, say, in Real Mode).

In fact, machines which are alleged to come with only 640 Kb of RAM willalways comes with at least some memory in the range 640 Kb to 1 Mb. Afterall, they need Video RAM (at 0xA000:0000) to use a screen, and all8086/8088-compatible microprocessors will have a BIOS (at 0xF000:0000).

DOS and other programs occupy the region 0 to 640 Kb.

If the machine has only 512 Kb, a gap exists from 512 Kb to 640 Kb.However, there will still be some memory above 640 Kb, as stated above.

In other words, memory need not be contiguous. There can be gaps in it,meaning there literally is no memory at certain addresses (address ranges).

In fact, IBM generously delivered my AT with a whopping 128 Kb ofConventional Memory! That's why I bought an Extended Memory card... Thelatter has 2 Mb on it, 512 Kb of which is used to 'backfill' ConventionalMemory up to 640 Kb (128 + 512), while the other 1536 Kb (2048 - 512) isused for a RAM disk.

The first 1 Kb of Conventional Memory holds the Interrupt Vector Table,which consists of 256 addresses, each of 4 bytes.

Remember, it takes 4 bytes to hold a memory address of the formSegment:Offset.

Each 4-byte address is called an interrupt vector, and is allocated to aninterrupt of a specific type.

When an interrupt occurs, the CPU saves the state of the machine and jumpsto the corresponding interrupt address. The code pointed to is a StrategyRoutine which handles its own interrupt and returns. The CPU restores thestate of the machine and continues executing the interrupted program.

Eg: every time a key is pressed or released, interrupt 0x09 is triggered.That is, the CPU jumps to the address stored in bytes 0x24 to 0x27.

Various programs (the BIOS, ROM BIOS Extensions and user programs) storeaddresses into this first 1 Kb. By doing so they announce they will handleinterrupts of the type whose address they have changed to point tothemselves. This process is called 'hooking an interrupt'.

Let's take the case of a non-BIOS program. Eg: we might write a programsuch that when a particular key is hit, the program 'pops-up'.

From the program's point of view, here's what happens:

 1. The program is written in such a way that part of it is a Strategy Routine for a given interrupt. 2. The program is run by the user. 3. While running, the program determines the address in memory of its Strategy Routine. 4. The program stores this address in the interrupt vector table, at the address corresponding to key-stroke interrupts. 5. The program jumps into DOS via interrupt 0x21, and requests DOS that it, the program, Terminate-and-Stay-Resident (TSR). 6. Thereafter, whenever the user hits a key, the key-stroke interrupt is executed. The Strategy Routine examines the key-stroke and decides whether or not to pop-up.

In reality, we wouldn't hook interrupt 0x09, which is executed twice perkey-stroke (press, release). We'd hook interrupt 0x16, which is executedevery time a complete key-stroke is available in the BIOS's key-boardbuffer.

Since DOS was not designed to cleanly support such manoeuvres, suchprogramming is fraught with difficulties...

PCs and XTs can't have Extended Memory.

It is memory beyond the 1 Mb boundary. That is, its physical address startsat 1 Mb. There can be up to 15 Mb of Extended Memory.

It is only addressed by a 286/386 processor running in Protected Mode.Since DOS runs in Real Mode, it (DOS) cannot directly address ExtendedMemory, let alone execute code residing in the latter. However, somesoftware can access this memory.

In fact, there are several ways to access it.

 1. Use a DOS program like VDISK or RAMDRIVE to treat the memory as a RAM disk. 2. Use certain DOS functions to transfer blocks of data between Conventional Memory and Extended Memory. 3. Use an Extended Memory Manager written to the Extended Memory Specification. These have names like HIMEM.SYS, 386^MAX, QEMM...
This is IBM's phrase for Extended Memory. I kid you not.

IBM ATs come with a diagnostic floppy. Booting from this enables you tostore and change values in CMOS.

When specifying the amount of Extended Memory in your machine, you do itwhen the SETUP program asks for Expansion Memory.

Clear? I'm so glad.

By the way, this SETUP program has a menu choice for copying floppies. Youmust use it to copy the diagnostics floppy itself. If you use DISKCOPY tocopy the diagnostics floppy, there are no error messages, but the resultantcopy will not boot.

The Extended Memory Specification. It is a systematic method for readingand writing Extended Memory. This spec is much more recent than theExpanded Memory Specification (EMS).PCs, XTs and ATs can all have Expanded Memory.

Access to it is via the EMS, a hardware and software combination tocircumvent the 1 Mb addressing limit of the Intel processors operating inReal Mode. I'll refer to it as EMS Memory. The software is called anExpanded Memory Manager (EMM).

There can be up to 8 Mb of EMS Memory.

It's physical address doesn't sit beyond the 1 Mb boundary. In fact, itdoesn't sit anywhere. This is explained in LIM 3.2 below.

The Expanded Memory Specification. It is a systematic method for readingand writing Expanded Memory. This spec has gone through several versions.

EMS is now taken to mean EMS 4.0.

Lotus/Intel/Microsoft: These companies produced the first EMS, version 3.2,which is thus known as LIM 3.2.

It allows programs to map (utilize) pages of Expanded Memory, each of 16Kb. At most, 4 such pages can be mapped at once.

Mapping means the pages have their addresses fiddled so that they look likethey reside in the address range 640 Kb to 1 Mb. This in turn means theyare accessible by DOS, but cannot reside in the lower 640 Kb address range.

The Enhanced Expanded Memory Specification. This followed LIM 3.2. It wasdesigned by AST Research, Quadram and Ashton-Tate.

It allows programs to map up to 64 pages at a time. Pages can be mappedinto the address range 0 Kb to 1 Mb.

The LIM companies upgraded EMS to be a super-set of EEMS, producing EMSversion 4.0 in the process. AST Research, Quadram and Ashton-Tate then cameto the party.As if all that madness wasn't enough, there is Expanded Memory and ExpandedMemory.

Some PC memory expansion cards contain hardware support for EMS 4.0, aswell as the memory chips themselves, and thus this memory is absolutelyExpanded Memory. However, an EMS Manager can make some or all of it looklike Extended Memory.

Some expansion cards don't have this hardware support, and thus the memoryis absolutely Extended Memory. However, an EMS Manager can make some or allof it look like Expanded Memory.

Lastly, a few early expansion cards had hardware support for only 4 pagesof Expanded Memory, not 64 pages, and thus don't fit the definition of EMS4.0. At the worst they are misrepresented as being EMS 4.0 compatible. Theyaren't.

Now, does it matter? Yes, but first another detour.

This is the amount of memory held in two (2) places in CMOS. It is ExtendedMemory. One value is the amount specified by the user of the SETUP program.The other value is the amount detected during the POST.

These values do not include Expanded Memory with hardware support.

These values do include Extended Memory made to look like Expanded Memoryby an EMS Manager.

Don't forget, at the time of the POST the EMS Manager has not yet startedrunning. After the POST, DOS will be loaded and CONFIG.SYS will beprocessed. A command in CONFIG.SYS will load the EMS Manager.

Going back to the POST, memory will be of three types:

 - Conventional Memory. - Expanded Memory forced to look like Expanded Memory by the presence of hardware support. - Extended Memory, i.e. everything else.
I have just written a program which displays the amount of memory in amachine. Simple, you'd think. It wasn't.

Eg: DOS might tell you Total Extended Memory is 0, because an XMS Manageris installed.

On the other hand, getting Physical Extended Memory from CMOS is notdefinitive, because an EMS Manager might be supplying extra Extended Memoryout of Expanded Memory.

8086/8088-compatible microprocessors run in Real Mode.

The 286/386/486 series can run in Real or Protected Mode.

Now, what do these Modes mean?

In short, very short, I'll just say: Be aware that in Protected Mode themicroprocessor can execute certain privileged instructions not available inReal Mode. In other words the chip is more powerful in Protected Mode thanin Real Mode.

This begs the question: Why manufacture a chip like this?

The simple answer is that many years ago when the 8086/8088s were beingdesigned, chip fabrication technology was only good enough to allow RealMode chips to be manufactured. Don't forget the design constraints ofsimplicity and an incredibly cheap retail price.

The real answer is that at first technology restricted the sophisticationof the chip, for sure, but later new technology enabled a chip to bemanufactured whose design (Real/Protected Mode) modelled the human brain(Conscious/Unconscious Mode).

Similarly, humans create institutions which also model the brain. Takedemocracy for example.

It is implemented with two Houses of Parliament:

 State Real Protected Victoria Legislative Council Legislative Assembly Australia Senate House of Representatives England House of Lords House of Commons America Congress House of Representatives - Brain Conscious Unconscious Literature Dr. Jekyll Mr. Hyde (hide, get it?)

This arrangement contrasts nicely with that pertaining in a dictatorship...

 0x0000:0000 to 0x9FFF:000F = 640 Kb of DOS RAM. 0xB800:0000 to 0xBFFF:000F = 32 Kb of Video RAM. 0xC000:0000 to 0xC9FF:000F = 32 Kb of Video (EGA/VGA) BIOS, that is, a ROM BIOS Extension. 0xCA00:0000 to 0xCFFF:000F = 32 Kb of Floppy controller card BIOS, that is, a ROM BIOS Extension.

Note 1: The Video BIOS and Floppy controller card BIOS are not reallyexactly 32 Kb long.

Note 2: Using Debug to dump memory, I see that printable text (displayedduring booting) in the Floppy controller card BIOS actually starts at0xC9EF:0378.

 0x0000:0000 to 0x9FFF:000F = 640 Kb of DOS RAM. 0xB800:0000 to 0xBFFF:000F = 32 Kb of Video RAM. 0xC000:0000 to 0xC9FF:000F = 32 Kb of Video (VGA) BIOS.

Author

Ron Savage.

Home page: http://savage.net.au/index.html

  • Version: 1.01 01-Jun-2006

    This version disguises my email address.

  • Version: 1.00 18-Feb-2002

    Original version.

Licence

Australian Copyright © 2002 Ron Savage. All rights reserved. A tutorial on PC memory and hex arithmetic (1)

All Programs of mine are 'OSI Certified Open Source Software';you can redistribute them and/or modify them under the terms ofThe Artistic License, a copy of which is available at:http://www.opensource.org/licenses/index.html
A tutorial on PC memory and hex arithmetic (2024)

FAQs

How do I read a hex memory address? ›

Memory addresses are displayed as two hex numbers. An example is C800:5. The part to the left of the colon (C800) is called the segment address, and the part to the right of the colon (5) is called the offset. The offset value can have as many as four hex digits.

How do you solve hexadecimal codes? ›

Now, to calculate the hexadecimal number, there are three quick steps (as also stated above): Multiply the first number (or converted number from the letter) by 16. Multiply the second number (or converted number from the letter) by 1. Add those two totals together to get a single value.

What range of hex address values are used in 256 memory? ›

100 0 - FF

How are hex numbers stored? ›

An even more efficient way to represent memory is hexadecimal form. Here, each digit represents a value between 0 and 16, with values greater than 9 replaced with the characters a to f. A single hexadecimal digit corresponds to 4 bits, so each byte of memory requires only 2 hexadecimal digits.

How do you decode hex values? ›

Converting Hex to Decimal
  1. Start with the right-most digit of your hex value. ...
  2. Move one digit to the left. ...
  3. Move another digit left. ...
  4. Continue multiplying each incremental digit of the hex value by increasing powers of 16 (4096, 65536, 1048576, ...), and remember each product.

Do computers store information in hex? ›

Hex numbers are compact and use less memory, so more numbers can be stored in computer systems. Their small size also makes input-output handling easier compared to other numbering formats. Because it's easy to convert hexadecimal to binary and vice versa, the system is widely used in computer programming.

What is a hex code example? ›

A hex color code is a 6-symbol code made of up to three 2-symbol elements. Each of the 2-symbol elements expresses a color value from 0 to 255. The code is written using a formula that turns each value into a unique 2-digit alphanumeric code. For example, the RGB code (224, 105, 16) is E06910 in hexadecimal code.

What are the 16 digits in hexadecimal? ›

The hexadecimal number system is a type of number system, that has a base value equal to 16. It is also pronounced sometimes as 'hex'. Hexadecimal numbers are represented by only 16 symbols. These symbols or values are 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E and F.

Does hex mean 6 or 16? ›

Hexadecimal is the name of the numbering system that is base 16. This system, therefore, has numerals 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, and 15. That means that two-digit decimal numbers 10, 11, 12, 13, 14, and 15 must be represented by a single numeral to exist in this numbering system.

How many hex is a IP address? ›

Address Explanation

There are four hexadecimal digits that make up every 16 bits of the address, thus resulting in 8 groups of hexadecimal digits, each separated by colons. There are 3 logical groups in an IPv6 address: The first 48 bits, belong to the global prefix (LSU's global prefix – 2620:0105:B000::/40).

How many bytes is a hex? ›

A single hexadecimal character represents 4 bits. Two hexadecimal characters can represent a byte (8 bits).

How do I calculate memory location? ›

Step 1: calculate the length of the address in bits (n bits) Step 2: calculate the number of memory locations 2^n(bits) Step 3: take the number of memory locations and multiply it by the Byte size of the memory cells.

How can you tell if a number is a hex? ›

The isxdigit() function checks whether a character is a hexadecimal digit character (0-9, a-f, A-F) or not. The function prototype of isxdigit() is: int isxdigit( int arg ); It is defined in the <ctype.

What does hex data look like? ›

To avoid confusion with decimal, octal or other numbering systems, hexadecimal numbers are sometimes written with a "h" after or "0x" before the number. For example, 63h and 0x63 mean 63 hexadecimal.

Why is memory in hex? ›

Memory is often manipulated in terms of larger units, such as pages or segments, which tend to have sizes that are powers of 2. So if addresses are expressed in hex, it's much easier to read them as page+offset or similar constructs.

What are 8 digit hex codes? ›

Eight-digit hex notation consists of a hash symbol ( # ), followed by eight characters. The first six characters represent the RGB (red, green, blue) value of the color, the last two represent the alpha chanel of the color. The RR represents the red component. The GG represents the green component.

How do you convert hex to words? ›

How to convert Hex to Text?
  1. Get hex byte code.
  2. Convert hex byte to decimal.
  3. Get character of decimal ASCII code from ASCII table.
  4. Continue with next hex byte.

How do I convert hex to normal text? ›

How To Use Hex To Text Converter?
  1. Step 1: Paste the hex value in the input box that you want to convert into English text. ...
  2. Step 2: Click the “Convert” button to start the conversion.
  3. Step 3: The result will appear immediately in the right box.
  4. Step 4: Click the "Download" button to save the results to your device.

What part of computer holds all your information? ›

A hard disk drive or solid state drive holds all of the data; files, photos, programs, music, and movies, that the user wants to keep. Removable, external media storage devices such as flash drives and read/writeable CDs and DVDs are also secondary storage. A computer can't function without a storage drive, however.

How is memory stored in a computer? ›

Data is represented on modern storage media using the binary numeral system. All data stored on storage media – whether that's hard disk drives (HDDs), solid state drives (SSDs), external hard drives, USB flash drives, SD cards etc – can be converted to a string of bits, otherwise known as binary digits.

What is the largest memory address we can do in hex? ›

Applying this to memory

On a 64-bit system, addresses can be up to 64 bits long, or 16 hexadecimal characters; however, currently no one on the planet has sufficient memory to allow each address to be used—this would 18 quintillion bytes, or almost 17 million terabytes of memory.

Why is it called a hex? ›

According to fantasy lore, a 'hex' is a negative spell performed by witches, and it can bring about anything from great misfortune to serious physical harm. The term is derived from the German word hexe, which means 'witch.

What is hex used for? ›

The Hexadecimal, or Hex, numbering system is commonly used in computer and digital systems to reduce large strings of binary numbers into a sets of four digits for us to easily understand.

How many hex codes are there? ›

How Many Hexadecimal Colours are Available? There are total 256³ or 16,777,216 colour combination available in standard #RRGGBB notation. It is because each colour values RR, GG, BB can include 256 different colour values ranging from 00 to FF. Hence the total number of colour combinations are 256³ or 16,777,216.

What binary number comes after 1111? ›

List of Binary Numbers from 1 to 100
No.Binary Number
141110
151111
1610000
1710001
96 more rows

What does 0x mean in hex? ›

Symbol. 0x. (computing) Indicates that the number that follows is in hexadecimal.

How to convert hex to decimal? ›

Given hexadecimal number is 7CF. To convert this into a decimal number system, multiply each digit with the powers of 16 starting from units place of the number. From this, the rule can be defined for the conversion from hex numbers to decimal numbers.

How many hex digits in a byte? ›

So a byte -- eight binary digits -- can always be represented by two hexadecimal digits.

Are hex codes universal? ›

HEX codes are created by using RGB percentage values to create a 2-digit code for each Red, Green and Blue percentage so you will end up for all value with a 6-digit code that is universally understood in the coding world.

How do I read Hexdump data? ›

The address of a hex dump counts tracks the number of bytes in the data and offsets each line by that number. So the first line starts at offset 0, and the second line represents the number 16, which is how many bytes precede the current line. 10 is 16 in hexadecimal, which we'll go into farther along in this article.

How do I read 0xffff? ›

0xffff is a hexadecimal number. The 0x only tells you that the value after the 0x is hexadecimal. Hexadecimal has 16 digits from 0 to 9 and from a to f (which means, a = 10, b = 11, c = 12, d = 13, e = 14, f = 15 in a hexadecimal number).

What is a 6 digit hex code? ›

Hex is a 6-digit, 24 bit, hexidecimal number that represents Red, Green, and Blue. An example of a Hex color representation is #123456 , 12 is Red, 34 is Green, and 56 is Blue. There are 16 million possible colors.

Why is the address is stored in hex? ›

Addresses in PC systems are always referred to by their hexadecimal value because digital computers are built on components that only work with two logic levels—either On/Off, High/Low, or 1/0. This corresponds directly to the Base-2 or binary numbering system.

What is the meaning of * in Hexdump? ›

* can mean one line of more, as many as there are until the proper offset. – Smeterlink. Apr 6, 2020 at 13:05. This is super confusing when it's actually the first and only thing that hexdump shows, but what it really means is you've got a file with nothing but zeros in it.

How do I read a text file in hex? ›

There are three ways to open a file in the hex editor:
  1. Right click a file -> Open With -> Hex Editor.
  2. Trigger the command palette (F1) -> Open File using Hex Editor.
  3. Trigger the command palette (F1) -> Reopen With -> Hex Editor.
Jun 8, 2020

How do I read the contents of a bin file? ›

To read from a binary file
  1. Use the ReadAllBytes method, which returns the contents of a file as a byte array. This example reads from the file C:/Documents and Settings/selfportrait. ...
  2. For large binary files, you can use the Read method of the FileStream object to read from the file only a specified amount at a time.
Sep 15, 2021

What does 0x00 mean in hex? ›

Convert decimal to binary, octal and hexadecimal
DecimalOctalHexadecimal
0/0000x00
1/0010x01
2/0020x02
3/0030x03
131 more rows

What does 0x10 mean in hex? ›

Prefixes which indicates the base. For example, 0x10 indicates the value 16 in hexadecimal having prefix 0x.

What does 0B mean in hex? ›

Character NameCharHex
Line FeedLF0A
Vertical TabVT0B
Form FeedFF0C
Carriage ReturnCR0D
79 more rows

What Hex color is #666? ›

#666 is a DARK GRAY. #AAA is a light LIGHT GRAY. NOTE! Always remember to put in the # symbol when specifying color numbers.

What is an example of a hex value? ›

For example: 7B316,6F16,4B2A16 7 B 3 16 , 6 F 16 , 4 B 2 A 16 are hexadecimal numbers. A hexadecimal number system is also known as a positional number system as each digit has a weight of power 16.

Does hex mean 16? ›

Hexadecimal is the name of the numbering system that is base 16. This system, therefore, has numerals 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, and 15.

Why is hex used for memory? ›

The hexadecimal system is commonly used by programmers to describe locations in memory because it can represent every byte (i.e., eight bits) as two consecutive hexadecimal digits instead of the eight digits that would be required by binary (i.e., base 2) numbers and the three digits that would be required with decimal ...

Is an IP address in hex? ›

An IP address can be expressed in dotted decimal, binary, octal, or hexadecimal. While all are correct and mean the same thing, it's most common to use dotted decimal notation for IPv4 and hexadecimal (hex) for IPv6.

Top Articles
Latest Posts
Article information

Author: Foster Heidenreich CPA

Last Updated:

Views: 5857

Rating: 4.6 / 5 (76 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Foster Heidenreich CPA

Birthday: 1995-01-14

Address: 55021 Usha Garden, North Larisa, DE 19209

Phone: +6812240846623

Job: Corporate Healthcare Strategist

Hobby: Singing, Listening to music, Rafting, LARPing, Gardening, Quilting, Rappelling

Introduction: My name is Foster Heidenreich CPA, I am a delightful, quaint, glorious, quaint, faithful, enchanting, fine person who loves writing and wants to share my knowledge and understanding with you.