#include "stdbool.h"
#include "in430.h"
__no_init bool sign_bcd; //用于表示BCD码的正负符号。
//////////////////////////////////////////////////////////////////////////////////////////将整型数转换成BCD码
/*将整型数转换成BCD码,用4个字节保存转换结果 //
程序出口: sign_bcd表示BCD码符号*/ //
unsigned long int_to_long_bcd(__no_init short input1) //
{ //
__no_init long long1;
__no_init unsigned long output1; //
__no_init short i,bcd1,bcd2; //
sign_bcd = false; //
output1 = 0; //
bcd1 = input1; //
bcd1 &= 0x8000; //
if (bcd1 != 0) //
{ //
sign_bcd = true; //
input1 ^= 0xffff; //
input1 = input1 + 1; //
} //
//
for (i = 1,bcd2=1,long1 = 1; i<=16 ; i++ , bcd2 = bcd2 << 1,long1 = __bcd_add_long (long1,long1)) //
{ //
bcd1 = input1; //
bcd1 &= bcd2; //
if (bcd1 != 0) //
output1 = __bcd_add_long (long1,output1); //
} //
return output1; //
} //
//
/////////////////////////////////////////////////////////////////////////////////////////////▲▲▲▲▲▲▲▲
///////////////////////////////////////////////////////////////////////////////////////将长整型数转换成BCD码
/*将长整型数转换成BCD码,用4个字节保存转换结果 //
程序出口: sign_bcd表示BCD码符号*/ //
unsigned long long_to_long_bcd(__no_init long input1) //
{ //
__no_init long bcd1; //
__no_init unsigned long output1,bcd2,long1; //
__no_init short i; //
sign_bcd = false; //
output1 = 0; //
bcd1 = input1; //
bcd1 &= 0x80000000; //
if (bcd1 != 0) //
{ //
sign_bcd = true; //
input1 ^= 0xffffffff; //
input1 = input1 + 1; //
} //
//
for (i = 1,bcd2=1,long1 = 1; i<=32 ; i++ , bcd2 = bcd2 << 1,long1 = __bcd_add_long (long1,long1)) //
{ //
bcd1 = input1; //
bcd1 &= bcd2; //
if (bcd1 != 0) //
output1 = __bcd_add_long (long1,output1); //
} //
return output1; //
} //
//
/////////////////////////////////////////////////////////////////////////////////////////////▲▲▲▲▲▲▲▲
//////////////////////////////////////////////////////////////////////////////////////////////////////将BCD码转换成整型数
//16位BCD码转换成为16位有符号整型数,第二个形式参数代表BCD码的符号。 //
short short_bcd_to_short(__no_init unsigned short input1,__no_init bool sign) //
{ //
__no_init unsigned short short1,short2; //
short1 = input1; //
short1 &= 0xf; //
short2 = short1; //
//
short1 = input1; //
short1 &= 0xf0; //
short1 =
没有合适的资源?快使用搜索试试~ 我知道了~
BCD-int.rar_32位hex转bcd_BCD码_BCD码 转换_Bcd16 to Int_bcd to int
共2个文件
txt:1个
c:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 117 浏览量
2022-09-23
22:56:09
上传
评论
收藏 1KB RAR 举报
温馨提示
BCD码和16/32位有符号以及无符号整型数之间的转换
资源推荐
资源详情
资源评论
收起资源包目录
BCD-int.rar (2个子文件)
sub1.c 17KB
www.pudn.com.txt 218B
共 2 条
- 1
资源评论
四散
- 粉丝: 49
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功