BCD 转ASCII

来源:互联网 发布:adobe cc2015 for mac 编辑:程序博客网 时间:2024/06/01 10:52
BCD码 通常为8421 BCD码  它是用4位二进制数来表示 十进制数  在一个字节中含有两个BCD码 
由于一个BCD码是4位,因此两个BCD码恰好是8位,即一个字节
96H后写H表示是十六进制的数  30H表示为0X30 十六进制数 为48 为ASCII中的‘0’ 
如十进制数96表示成压缩BCD码就是96H,转换成ASCII码就是压缩BCD码表示的十进制数的高位和低位分开,
以ASCII码表示,即转换成39H和36H。
转码时用到 位运算符>>  和  & 运算符  在谭浩强C语言中有

0X0F 代表 0000 1111  

int translate(FILE *fp1){int size ;char str[100],a[100] ,b[100];fseek(fp,0,2);size = ftell(fp);fread(str,size,1,fp1);while(!feof){for(i = 0 ; i<= size ;i++){a[i] = (str[i] >> 4) & 0x0f +0x30;b[i] = str[i] & 0x0f + 0x30 ;printf("%c %c",a[i],b[i]);}}        return 0 ;} 


0 0
原创粉丝点击