Skip to main content

ieee754_converter 1.0.0 copy "ieee754_converter: ^1.0.0" to clipboard
ieee754_converter: ^1.0.0 copied to clipboard

A comprehensive Dart library for IEEE 754 floating-point representation conversion supporting 16-bit (half), 32-bit (single), 64-bit (double) precision formats and custom bit configurations.

example/example.dart

import 'package:ieee754_converter/ieee754_converter.dart';

void main() {
  print('=== IEEE 754 Floating Point Converter Examples ===\n');

  // Example 1: Single Precision Conversion
  print('1. Single Precision (32-bit) Conversion');
  print('-' * 50);
  final single = IEEE754Single.fromDecimal(12.625);
  print('Decimal: 12.625');
  print('Sign: ${single.sign}');
  print('Exponent (biased): ${single.exponent}');
  print('Exponent (actual): ${single.actualExponent}');
  print('Fraction: ${single.fraction}');
  print('Binary: ${single.binaryFormatted}');
  print('Hexadecimal: ${single.hexadecimal}');
  print('Octal: ${single.octal}');
  print('Back to Decimal: ${single.toDecimal()}\n');

  // Example 2: Half Precision Conversion
  print('2. Half Precision (16-bit) Conversion');
  print('-' * 50);
  final half = IEEE754Half.fromDecimal(12.625);
  print('Decimal: 12.625');
  print('Binary: ${half.binaryFormatted}');
  print('Hexadecimal: ${half.hexadecimal}');
  print('Back to Decimal: ${half.toDecimal()}\n');

  // Example 3: Double Precision Conversion
  print('3. Double Precision (64-bit) Conversion');
  print('-' * 50);
  final double_ = IEEE754Double.fromDecimal(12.625);
  print('Decimal: 12.625');
  print('Binary: ${double_.binaryFormatted}');
  print('Hexadecimal: ${double_.hexadecimal}');
  print('Back to Decimal: ${double_.toDecimal()}\n');

  // Example 4: Special Values
  print('4. Special Values');
  print('-' * 50);
  final zero = IEEE754Single.fromDecimal(0.0);
  print('Zero: ${zero.binaryFormatted} (${zero.specialValueType})');

  final infinity = IEEE754Single.fromDecimal(double.infinity);
  print('Infinity: ${infinity.binaryFormatted} (${infinity.specialValueType})');

  final nan = IEEE754Single.fromDecimal(double.nan);
  print('NaN: ${nan.binaryFormatted} (${nan.specialValueType})\n');

  // Example 5: Custom Format
  print('5. Custom Format (24-bit)');
  print('-' * 50);
  final custom = IEEE754Custom(signBits: 1, exponentBits: 7, fractionBits: 16);
  print('Format: $custom');
  final customResult = custom.fromDecimal(12.625);
  print('Binary: ${customResult.binaryFormatted}');
  print('Back to Decimal: ${customResult.toDecimal()}\n');

  // Example 6: Binary to Decimal
  print('6. Binary to Decimal Conversion');
  print('-' * 50);
  final fromBinary = IEEE754Single.fromBinary(
    '01000001010010100000000000000000',
  );
  print('Binary: 01000001010010100000000000000000');
  print('Decimal: ${fromBinary.toDecimal()}\n');

  // Example 7: Hexadecimal to Decimal
  print('7. Hexadecimal to Decimal Conversion');
  print('-' * 50);
  final fromHex = IEEE754Single.fromHex('0x414A0000');
  print('Hexadecimal: 0x414A0000');
  print('Decimal: ${fromHex.toDecimal()}\n');

  // Example 8: Precision Comparison
  print('8. Precision Comparison');
  print('-' * 50);
  final value = 0.1;
  final halfPrec = IEEE754Half.fromDecimal(value);
  final singlePrec = IEEE754Single.fromDecimal(value);
  final doublePrec = IEEE754Double.fromDecimal(value);

  print('Original: $value');
  print(
    'Half (16-bit): ${halfPrec.toDecimal()} (error: ${(halfPrec.toDecimal() - value).abs()})',
  );
  print(
    'Single (32-bit): ${singlePrec.toDecimal()} (error: ${(singlePrec.toDecimal() - value).abs()})',
  );
  print(
    'Double (64-bit): ${doublePrec.toDecimal()} (error: ${(doublePrec.toDecimal() - value).abs()})',
  );
}
0
likes
150
points
9
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A comprehensive Dart library for IEEE 754 floating-point representation conversion supporting 16-bit (half), 32-bit (single), 64-bit (double) precision formats and custom bit configurations.

Repository (GitHub)

License

MIT (license)

Dependencies

path

More

Packages that depend on ieee754_converter