Pascal

Moderators: None (Apply to moderate this forum)
Number of threads: 4106
Number of posts: 14016

This Forum Only
Post New Thread
Single Post View       Linear View       Threaded View      f

Report
Re: Binary to decimal and Decimal to binary conversion Posted by ildar on 21 Oct 2012 at 9:35 AM
:))
{Binary to decimal
This function gets binary number as a String and will return decimaal number as an Integer}
function bin2dec(getal:String): Integer;
  var
    I: Integer;
    uitvoer : Integer;
    begin
    uitvoer := 0;
      for I := 0 to length(getal) -1 do
        begin
          if getal[length(getal) - I] = '1' then
           begin
             uitvoer := uitvoer + 1 shl (I);
           end;
      end;
      bin2dec:=uitvoer;
  end;

{Returns a string in which the character order of a specified string is reversed}
function ReverseString(S : String): String;
      var
      i : Integer;
        begin
        Result := '';
        For i := Length(S) DownTo 1 Do
          Begin
            Result := Result + Copy(S,i,1) ;
          End;
      End;

  {
 Decimaal to binary
 This function gets a decimal number as Integer and will return the binary number as a String
}
function dec2bin(getal:Integer): String;
  var
  uitvoer:String;
  getal_met_rest : Real;
  begin
  while getal > 0 do
    begin
        getal_met_rest := getal / 2;
        if frac(getal_met_rest) = 0
          then uitvoer := uitvoer + '0'
          else uitvoer := uitvoer + '1';
        getal := trunc(getal_met_rest);
    end;
  dec2bin:=ReverseString(uitvoer);
  end;

 {
 This function gets a decimal number as an Integer and will return the HEX number as a String
 }
function dec2hex(getal:Integer): String;
  var
  uitvoer: String;
  getal_met_rest : Real;
  S : Integer;
  begin
    while getal > 0 do
         begin
            getal_met_rest := getal / 16;
            S := getal - (trunc(getal_met_rest)*16);
            if S < 10 then uitvoer := uitvoer + IntToStr(S);
            if S = 10 then uitvoer := uitvoer + 'A';
            if S = 11 then uitvoer := uitvoer + 'B';
            if S = 12 then uitvoer := uitvoer + 'C';
            if S = 13 then uitvoer := uitvoer + 'D';
            if S = 14 then uitvoer := uitvoer + 'E';
            if S = 15 then uitvoer := uitvoer + 'F';
            getal := trunc(getal_met_rest);
         end;
    dec2hex:=ReverseString(uitvoer);
  end;

  {
 This function gets hex number as a String and will return the decimamaal number as an Integer
 }
 function hex2dec(getal: String) : Integer;
    var
    uitvoer: Integer;
    I: Integer;
    dec_number: Integer;
    begin
    uitvoer := 0;
    getal := ReverseString(getal);
      for I := 1 to length(getal) do
        begin
              if getal[I] = '1'  then dec_number := 1;
              if getal[I] = '2'  then dec_number := 2;
              if getal[I] = '3'  then dec_number := 3;
              if getal[I] = '4'  then dec_number := 4;
              if getal[I] = '5'  then dec_number := 5;
              if getal[I] = '6'  then dec_number := 6;
              if getal[I] = '7'  then dec_number := 7;
              if getal[I] = '8'  then dec_number := 8;
              if getal[I] = '9'  then dec_number := 9;
              if getal[I] = 'a'  then dec_number := 10;
              if getal[I] = 'A'  then dec_number := 10;
              if getal[I] = 'b'  then dec_number := 11;
              if getal[I] = 'B'  then dec_number := 11;
              if getal[I] = 'c'  then dec_number := 12;
              if getal[I] = 'C'  then dec_number := 12;
              if getal[I] = 'd'  then dec_number := 13;
              if getal[I] = 'D'  then dec_number := 13;
              if getal[I] = 'e'  then dec_number := 14;
              if getal[I] = 'E'  then dec_number := 14;
              if getal[I] = 'f'  then dec_number := 15;
              if getal[I] = 'F'  then dec_number := 15;

             uitvoer := uitvoer + (dec_number * trunc(Power(16, I-1)));
        end;
      hex2dec:=uitvoer;
    end;

 {
 This function gets a decimal number as an Integer and will return the octal number as a String
 }
function dec2oct(getal:Integer): String;
  var
  uitvoer: String;
  getal_met_rest : Real;
  begin
    while getal > 0 do
         begin
            getal_met_rest := getal / 8;
            uitvoer := uitvoer + IntToStr(getal - (trunc(getal_met_rest)*8));
            getal := trunc(getal_met_rest);
         end;
    dec2oct:=ReverseString(uitvoer);
  end;

 {
 This function gets octal number as a String and will return the decimamaal number as an Integer
 }
 function oct2dec(getal: String) : Integer;
    var
    uitvoer: Integer;
    I: Integer;
    begin
    uitvoer := 0;
    getal := ReverseString(getal);
      for I := 1 to length(getal) do
        begin
             uitvoer := uitvoer + (StrToInt(getal[I]) * trunc(Power(8, I-1)));
        end;
      oct2dec:=uitvoer;
    end;





 

Recent Jobs

Official Programmer's Heaven Blogs
Web Hosting | Browser and Social Games | Gadgets

Popular resources on Programmersheaven.com
Assembly | Basic | C | C# | C++ | Delphi | Flash | Java | JavaScript | Pascal | Perl | PHP | Python | Ruby | Visual Basic
© Copyright 2011 Programmersheaven.com - All rights reserved.
Reproduction in whole or in part, in any form or medium without express written permission is prohibited.
Violators of this policy may be subject to legal action. Please read our Terms Of Use and Privacy Statement for more information.
Operated by CommunityHeaven, a BootstrapLabs company.