leftimage for poohprod.ru

Decimal to Octal conversion: two methods in Matlab


In this article we're going to present two methods of a decimal to octal conversion in Matlab; that is, we're going to convert decimal numbers (numbers with 10 different symbols, from '0' to '9', or in base 10) into octal numbers (numbers with only symbols '0' to '7', or in base 8).



First, let's understand how this works if we do it manually. Later we can automate the process.




Let's say that we need to convert the number 142 (a decimal number) into an octal number.

We divide 142 by 8: the quotient is 17 and the remainder is 6 (q = 17, r = 6). The first digit for our octal number will be this remainder. This value will be the least significant digit in our final value (assume variable oct = '6', so far).

We divide the previous quotient (17) again by 8: the new quotient is 2 and the remainder is 1 (q = 2, r = 1). Our second digit -right to left- for the octal result will be this reminder (variable oct = '16', so far).

Since the latest quotient was less than 8, we know that we have finished our conversion. We take the last quotient and include it in our final octal result, and this is going to be the most significant digit (oct = '216', final result).


1st. method: with a Matlab function

We can get the decimal to octal conversion using the Matlab command 'dec2base', which converts a decimal integer to a base B string.

dec2base(D, B) returns the representation of D as a string in base B. D must be a non-negative integer array smaller than 252 and B must be an integer between 2 and 36.

For example:

dec_nr = 142;
oct = dec2base(dec_nr, 8);

Matlab's answer is

oct = '216'

Note that the result is a 3-character string in Matlab, it's not a number.


2nd. method: our own idea

To automate the process explained above, we need to explain first the commands 'floor', 'rem', 'num2str' and 'fliplr'.

'floor': rounds towards minus infinity.
'rem': remainder after a division.
'num2str': converts numbers to strings.
'fliplr': flips matrix in left/right direction.


The proposed code and example is this:

dec_nr = 142
base = 8;
i = 1;
q = floor(dec_nr/base);
r = rem(dec_nr, base);
oct(i) = num2str(r(i));

while base <= q
dec_nr = q;
i = i + 1;
q = floor(dec_nr/base);
r = rem(dec_nr, base);
oct(i) = num2str(r);

end

oct(i + 1) = num2str(q);
oct = fliplr(oct)

The while-loop goes on until the quotient is less than our base. q is the quotient, r is the remainder and we keep all the remainders in string variable oct. The last digit in our conversion is the most significan digit (MSD) and it's the last quotient obtained, the one that was less than our base.

Since the octal digits are obtained from least significant to most significand digit, we have to flip the array in the last step, so that we can see the number in the appropriate order.

From 'Decimal to octal' to Matlab home

From 'Decimal to octal' to 'Matlab Programming'

Search Site/ Table of Contents



Top

Online Base Converter

Bin-to-Dec conversion

Binary-to-Hex

Hex-to-Bin

Gray Code




footer for decimal to binary page




















Related pages


double integral calculator onlinebinary to hexadecimal tablehow to convert from cartesian to polarpascal triangle using cmatlab visualize 3d matrixplot complex numbers matlabpascal trianglessketch piecewise functiondecimal octal converterwriting a matlab programmatlab binarymatlab mesh examplespecial characters ascii valueshow to create a table in matlabplot coordinates matlabrandn3d array matlabhow to construct a pascal trianglegeneric programingloops in matlabwriting matrices in matlabtable of ascii codesread resistor valuesplot circle in matlabmatlab function writingtranslate binary to decimalcompound continuously interest calculatorbinary to octal converterfinding polynomial rootsmatlab programming basicshexadecimal to binary conversion methodinterest compounded continuously calculatorheaviside function integralterm deposit calculator excelmatlab txtpiecewise function calculator onlinetrendline matlabsawtooth equationhow to find factorialscar salvage valueohms law pie chartgraphing unit step functionsexamples of fibonacci sequencehow to change binary to decimalpiecewise function graphing calculator onlinematlab fzero exampleconvertir de decimal a octalbinary to hexadecimal conversion methodmatlab simultaneous equationsmatlab inverse functionmatlab cosinecollatzbisectional methodascii representationmatlab handlecontinuous compounding calculatorlaptop depreciationseries de maclaurinnumerical differentiation in matlabcompass graphamoritzation tablematlab wireframematlab inverse of matrixsolving rc circuit differential equationrecursion programlucas numbersfibonacci spiral vectormatlab fminsearchsolving simultaneous nonlinear equations in matlabinfopreneursimultaneous equation examplehow to calculate power factor correction capacitorintegral calcpiecewise function graph