Learn Microsoft Access Advanced Programming Techniques, Tips and Tricks.

Octal Numbering System

This is the continuation of earlier Articles:

1.  Learn Binary Numbering System.

2.  Learn Binary Numbering System-2.

Please go through the earlier Articles before continuing. . .

We will bring forward the result of the Decimal 255 to Binary conversion for a closer look at these two numbers: 11111111.

Decimal Number 255 needs only 3 digits to write this quantity but when we convert it into binary it needs 8 binary digits or bits.  Earlier computer programs were written using binary instructions.  Look at the example Code given below:

Later programming language like Assembly Language was developed using Mnemonics (8 bit based binary instructions) like ADD, MOV, POP etc.  Present day Compilers for high-level languages are developed using Assembly Language. A new numbering system was devised to write binary numbers in short form.

This numbering system has number 8 as its base and is known as Octal Numbering System.  Based on the general rule that we have learned, Octal Numbering System have digits 0 to 7 (one less than the base value 8) to write numerical quantities. There is no 8 or 9 digits in this numbering system. Octal Numbering System has been devised to write Binary instructions into short form and to write program codes easily.

For example an 8 bit Binary instruction looks like the following:

00010111  (instruction in Octal form 027), ADD B,A (Assembly Language)

The first two bits (00) represent the operation code ADD, next three bits (010) represents CPU Register B and next three bits (111) represents CPU Register A, the 8 bit binary instruction says add the contents of register A to register B.  If the instruction must be changed to (ADD A,B) add register B to A then the last six bits must be altered as 00,111,010. This can be easily understood if it is written in Octal 027 to 072 rather than Binary 00111010.

So, Octal (Base-8) Numbering System was devised to write binary based instructions in short form. Coming back to the Octal Numbering System, let us see how we can work with these numbers.  First, we will create a table similar to the decimal/binary numbering Systems.

85 84 83 82 81 80
32768 4096 512 64 8 1

We will use the same methods we have used for Binary to convert Decimal to Octal Numbers.

Example: Converting 255 into Octal Number?

For Binary conversion we could take the highest integer value from the table above and subtract it from 255.  But here we cannot do that.  By looking at the table above we can see that 512 is more than 255, so we must see next number 64 goes how many times into 255?


255/64= Quotient=3, Remainder=63 (Here, we have to take the Quotient as the Octal Digit).

In this method we must take Quotient 3 ( 64 x 3 = 192) for our result value and the balance is 63 (i.e. 255 - 192)

85 84 83 82 81 80
32768 4096 512 64 8 1

63/8 = Quotient = 7, Remainder=7

85 84 83 82 81 80
32768 4096 512 64 8 1
      3 7  

7 is not divisible by 8, hence 7 goes into the Units position

85 84 83 82 81 80
32768 4096 512 64 8 1
      3 7 7


255/8 = Quotient = 31, Remainder=7

85 84 83 82 81 80
32768 4096 512 64 8 1

31/8 = Quotient = 3, Remainder=7

85 84 83 82 81 80
32768 4096 512 64 8 1
        7 7

3 is not divisible by 8, hence it is taken to the third digit position.

85 84 83 82 81 80
32768 4096 512 64 8 1
      3 7 7

As I mentioned earlier that Octal Numbering System has been devised to write Binary Numbers into short form.  Let us see how we can do this and convert binary number easily into Octal Number.

The Decimal Number 255 when converted into Binary we get 11111111. To convert it into Octal Numbers set the binary digits into groups of three bits (011,111,111) from right to left and add up binary values of each group and write the Octal value.

011 = 3

111 = 7

You may try converting few more numbers of your own to understand this Numbering System better.  First, convert some Decimal Numbers to Binary and group the Binary Digits in sets of 3 bits and add up the values of the group as if they are the first three bits of binary number.

Since, Octal Numbers are written with digits 0 to 7, it looks like decimal numbers to both man and machine. There must be a way to distinguish Octal Numbers from decimal numbers. Therefore it is written with the prefix characters &O. When Octal numbers are written alone or used in expressions it is written with the prefix characters &O (the letter O, not case sensitive) or &0 (digit zero), like &O0377 or &O377 or &0377.

You can try this by typing the above number in the Debug Window in the VBA Editing Screen of Microsoft Access or Excel.


? &O0377

result: 255

? &0377

result: 255

? &0377 * 2

result: 510

Next we will learn Base-16 (Hexadecimal) Numbering System.

Technorati Tags:

No comments:

Post a Comment

Comments are subject to moderation before publishing.


Subscribe in a reader
Your email address:

Delivered by FeedBurner

Blog Directory Visit blogadda.com to discover Indian blogs


Popular Posts

Search This Blog

Blog Archive

Powered by Blogger.

Follow by Email


Forms How Tos Functions MS-Access Security Reports msaccess forms Animations msaccess animation Class Module Utilities msaccess controls Access and Internet MS-Access Scurity MS-Access and Internet Array Queries msaccess reports External Links msaccess tips Accesstips Downloads Objects Property Menus and Toolbars Controls Event MsaccessLinks Process Controls Art Work Collection Object WithEvents msaccess How Tos Combo Boxes Graph Charts List Boxes VBA msaccessQuery Command Buttons Command Button Data Dictionary Object Emails and Alerts Form Query RaiseEvent Report Calculation Custom Wizards DOS Commands Data Type ms-access functions msaccess functions msaccess graphs msaccess reporttricks Item Object Reference msaccessprocess security advanced Access Security Add Custom Functions Field Type Fields Form Instances Key Macros Menus SubForm Top Values Variables msaccess email msaccess menus progressmeter Access2007 Auto-Number Copy Expression Join Methods Microsoft Numbering System Records Recordset Security Split Table Time Difference Utility Workgroup Wrapper Classes database ms-access msaccess wizards reference text tutorial vba code Access2003 Accounting Year Action Animation Attachment Binary Numbers Bookmarks Budgeting ChDir Color Palette Conditional Formatting Data Filtering Defining Pages Diagram Disk Dynamic Lookup Error Handler Excel Export External Filter Formatting Groups Hexadecimal Numbers Import Labels List Logo Macro Mail Merge Main Form Memo Monitoring Octal Numbers Operating System Paste Primary-Key Product Rank Reading Remove Rich Text Sequence SetFocus Summary Tab-Page Tables Union Query User Users Water-Mark Word automatically commands function hyperlinks iSeries Date iif msaccess msaccess alerts pdf files restore switch toolbar updating upload

Featured Post

WithEvents and All Form Control Types

Introduction So far we have worked extensively with only one type of Control: the TextBoxes on Form, enabled with Events to Raise and captur...


Blog Archive

Recent Posts