Alternative Article

# Transform between IEEE, IBM or VAX floating point number formats and bytes expressions

, 16 Dec 2012 CPOL
 Rate this:
This is an alternative for "Transform between IEEE, IBM or VAX floating point number formats and bytes expressions"

## Introduction

John Hou's work, Transform between IEEE, IBM, and VAX floating point numbers, was originally written in C++. I took John's work, and converted it to C# 4.0. This code helps with converting IBM floats to IEEE floats and vice-versa. It also includes transformations for VAX floats to IEEE floats.

This is a C# version of John Hou's wonderful work. Tangible software did the initial C++ to C# conversion, which I then cleaned up, fixed missing areas, and then wrapped the engine to make it easier to work with for .NET developers.

## Background

John Hou's work is documented here.

http://www.codeproject.com/Articles/12363/Transform-between-IEEE-IBM-or-VAX-floating-point-n?fid=236108&df=90&mpp=10&noise=1&prof=True&sort=Position&view=Expanded&spc=None&fr=1#xx0xx

## Using the code

The solution included here has a test project illustrating a simple IBM float conversion. Not every aspect of the code conversion was tested since the immediaten eed was IBM float support. Others are welcome to work on the VAX or IEEE parts. All code is in C#.

The main class library is Converter. It can be called as:

```Converter c =new Converter();
byte[] bytes = new byte[] { 0x00, 0x00, 0x00, 0x80, 0x31, 0x93, 0x60, 0x48 };
double d = c.ConvertBytesToDouble(Platform.IbmFloat, bytes);

Console.WriteLine("Correct return value should be: " + 1620259200);
Console.WriteLine("Return Value:                   " + d);
Console.WriteLine();
Console.WriteLine("Press any key to continue...");

Additional methods available off of the Converter class are:

• `ConvertDoublesToBytes` - Converts a `double` value to `byte` array
• `ConvertSingleToBytes` - Converts single `float`s to `byte` array

All of the methods will take a `Platform` enum indicating the source of the origination bytes or doubles.

## History

2012-11-12  Initial version.

## Share

Software Developer (Senior) Savian
United States
SAS, Microsoft developer/consultant.

 First Prev Next
 Thanks for this ... Hugh Glover 28-Jun-13 1:00
 Code is GPL Chase Rayfield 22-Jan-13 9:02
 Re: Code is GPL Alan Churchill 3-Mar-13 12:46
 Re: Code is GPL Chase Rayfield 16-Oct-14 12:13
 My vote of 1 Paulo Zemek 17-Dec-12 10:37
 Re: My vote of 1 Alan Churchill 3-Mar-13 12:48
 VAX? PIEBALDconsult 17-Dec-12 4:46