Home »
C programming language
Working with octal values in C programming language
Octal value has 8 digit values from 0 to 7, with the base 8. (Read more about Computer number systems), here we will learn how to work with octal values in c programming language?
Representation of octal numbers in C programming
In C programming language, an octal number is represented by preceding with "0", thus the value in octal can be written as "0123" (which is equivalent to 83 in Decimal).
Assigning the octal number in a variable
There is no special type of data type to store octal values in C programming, octal number is an integer value and you can store it in the integral type of data types (char, short or int).
Let suppose, we have a value in octal "0123" (83 in Decimal).
We are storing "0123" in an unsigned char variable (83 is small value and can be stored with in a Byte).
Consider the following statements
unsigned char a=0123;
Printing the number in octal format
To print integer number in octal format, "%o" is used as format specifier in printf() statement.
Consider the code, which is printing the value of a...
#include <stdio.h>
int main()
{
unsigned char a=0123;
printf("value of a (in octal) : %o\n", a);
printf("value of a (in decimal): %d\n", a);
return 0;
}
Output
value of a (in octal) : 123
value of a (in decimal): 83
Reading value in octal format
"%o" can be used with scanf() statement to read the value in octal format from the user.
Consider the following code
#include <stdio.h>
int main()
{
unsigned int num;
printf("Input value in octal: ");
scanf("%o", &num);
printf("Entered value is in octal format : %o\n", num);
printf("Entered value is in decimal format: %d\n", num);
return 0;
}
Output
Input value in octal: 12345
Entered value is in octal format : 12345
Entered value is in decimal format: 5349
Declaring integer array by assigning octal values
Consider the following example, where integer array is declaring with the octal values and printing in both formats Decimal and Octal.
#include <stdio.h>
int main()
{
int arr[]={ 0100, 0101, 0123, 0761, 10};
int i;
printf("Array elements are\n");
for(i=0;i<5;i++)
printf("Decimal: %d, Octal: %o\n",arr[i],arr[i]);
return 0;
}
Output
Array elements are
Decimal: 64, Octal: 100
Decimal: 65, Octal: 101
Decimal: 83, Octal: 123
Decimal: 497, Octal: 761
Decimal: 10, Octal: 12