C# BCD码与十进制数的转换
2017-10-09 15:37
239 查看
BCD码(Binary-Coded Decimal)是二进制编码的十进制数的缩写,BCD码用4位二进制数表示一位十进制数。BCD码各位的数值范围为2#0000~2#1001,对应于十进制数0~9。BCD码不能使用十六进制的A~F(2#1010~2#1111)这6个数字。BCD码本质上是十进制数,因此相邻两位逢十进一。
BCD码的最高位二进制数是符号位,负数的符号位为1,正数为0。16位BCD码的范围为–999~+999。
代码 private static byte ConvertBCD(byte b)//byte转换为BCD码
{
//高四位
byte b1 = (byte)(b / 10);
//低四位
byte b2 = (byte)(b % 10);
return (byte)((b1 << 4) | b2);
}
/// <summary>
/// 将BCD一字节数据转换到byte 十进制数据
/// </summary>
/// <param name="b" />字节数
/// <returns>返回转换后的BCD码</returns>
public static byte ConvertBCDToInt(byte b)
{
//高四位
byte b1 = (byte)((b >> 4) & 0xF);
//低四位
byte b2 = (byte)(b & 0xF);
return (byte)(b1 * 10 + b2);
}
BCD码的最高位二进制数是符号位,负数的符号位为1,正数为0。16位BCD码的范围为–999~+999。
代码 private static byte ConvertBCD(byte b)//byte转换为BCD码
{
//高四位
byte b1 = (byte)(b / 10);
//低四位
byte b2 = (byte)(b % 10);
return (byte)((b1 << 4) | b2);
}
/// <summary>
/// 将BCD一字节数据转换到byte 十进制数据
/// </summary>
/// <param name="b" />字节数
/// <returns>返回转换后的BCD码</returns>
public static byte ConvertBCDToInt(byte b)
{
//高四位
byte b1 = (byte)((b >> 4) & 0xF);
//低四位
byte b2 = (byte)(b & 0xF);
return (byte)(b1 * 10 + b2);
}
相关文章推荐
- 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
- 十进制数转换为十六进制数
- 十进制数与二进制数的转换,浮点数在内存中的表示与字符编码
- 【a402】十进制数转换为八进制数
- 第二周上机任务1-2---编写递归函数将十进制数转换成二进制数输出
- 十进制数??? 转换为二进制
- 给定一个十进制数,转换为对应的二进制数
- 数制转换:如何将十进制数N转换为x进制数?(用栈实现)
- 用堆栈实现由十进制数向其他进制的转换
- 十进制数转换为二进制,八进制,十六进制数的算法
- C语言使用递归法将十进制数转换成二进制数输出程序
- 十进制数转换为二进制数
- 语言基础——Java_十进制数转换成十六进制数的实现
- 第二周实验报告之编写递归函数将十进制数转换成二进制数输出
- sdibt 2548 将十进制数转换成二进制数
- C++中十进制数转换为二进制数
- 关于int型整数按逆序存入数组中的问题(也即十进制数和其他类型数据的转换问题)
- 栈的应用--数制转换(十进制数转换为二进制、八进制、十六进制)
- 十进制数转换为N进制数
- 不使用库函数,将十进制数转换为二进制数