二进码十进数-BCDUtil
# 简介
BCD码(Binary-Coded Decimal 亦称二进码十进数或二-十进制代码,BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。
这种编码技巧最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免却使电脑作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。
BCD码是四位二进制码, 也就是将十进制的数字转化为二进制, 但是和普通的转化有一点不同, 每一个十进制的数字0-9都对应着一个四位的二进制码,对应关系如下: 十进制0 对应 二进制0000 ;十进制1 对应二进制0001 ....... 9 1001 接下来的10就有两个上述的码来表示 10 表示为00010000 也就是BCD码是遇见1001就产生进位,不象普通的二进制码,到1111才产生进位10000
# EasyTool.BCDUtil 类
方法说明:
DecToBinaryArray
: 将一个十进制数转换成对应的二进制码数组。BinaryArrayToDec
: 将一个二进制码数组转换成对应的十进制数。DecToBCDArray
: 将一个十进制数转换成对应的BCD码数组。BCDArrayToDec
: 将一个BCD码数组转换成对应的十进制数。
# DecToBinaryArray-十进制数转二进制数组
/// <summary>
/// 将一个十进制数转换成对应的二进制码数组
/// </summary>
/// <param name="dec">需要转换的十进制数</param>
/// <returns>二进制码数组</returns>
public static int[] DecToBinaryArray(int dec)
# BinaryArrayToDec-二进制码数组转换成对应的十进制数
/// <summary>
/// 将一个二进制码数组转换成对应的十进制数
/// </summary>
/// <param name="binaryArray">需要转换的二进制码数组</param>
/// <returns>对应的十进制数</returns>
public static int BinaryArrayToDec(int[] binaryArray)
# DecToBCDArray-十进制数转换成对应的BCD码数组
/// <summary>
/// 将一个十进制数转换成对应的BCD码数组
/// </summary>
/// <param name="dec">需要转换的十进制数</param>
/// <returns>BCD码数组</returns>
public static int[] DecToBCDArray(int dec)
# BCDArrayToDec-BCD码数组转换成对应的十进制数
/// <summary>
/// 将一个BCD码数组转换成对应的十进制数
/// </summary>
/// <param name="bcdArray">需要转换的BCD码数组</param>
/// <returns>对应的十进制数</returns>
public static int BCDArrayToDec(int[] bcdArray)
# 代码示例
using System;
class Program {
static void Main(string[] args) {
int dec = 123;
int[] binaryArray = BCDUtil.DecToBinaryArray(dec);
int binary = BCDUtil.BinaryArrayToDec(binaryArray);
int[] bcdArray = BCDUtil.DecToBCDArray(dec);
int bcd = BCDUtil.BCDArrayToDec(bcdArray);
Console.WriteLine($"十进制数 {dec} 对应的二进制码数组为:[{string.Join(", ", binaryArray)}]");
Console.WriteLine($"二进制码数组 [{string.Join(", ", binaryArray)}] 对应的十进制数为:{binary}");
Console.WriteLine($"十进制数 {dec} 对应的BCD码数组为:[{string.Join(", ", bcdArray)}]");
Console.WriteLine($"BCD码数组 [{string.Join(", ", bcdArray)}] 对应的十进制数为:{bcd}");
}
}
# 输出结果
十进制数 123 对应的二进制码数组为:[1, 1, 1, 1, 0, 1, 1]
二进制码数组 [1, 1, 1, 1, 0, 1, 1] 对应的十进制数为:123
十进制数 123 对应的BCD码数组为:[1, 0, 0, 0, 0, 1, 0, 0, 1, 1]
BCD码数组 [1, 0, 0, 0, 0, 1, 0, 0, 1, 1] 对应的十进制数为:123
上次更新: 2023/04/26, 22:10:06