社区
C语言
帖子详情
寻求将10进制数转换成8421BCD码的方法
ppyy
2002-03-15 11:08:26
请告诉我计算方法
代码我自己写
谢谢
...全文
1870
15
打赏
收藏
寻求将10进制数转换成8421BCD码的方法
请告诉我计算方法 代码我自己写 谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ppyy
2002-03-16
打赏
举报
回复
void Long2Bcd(BYTE *bcd, long lSource, long lByteLen)
{
int i;
long lNumber = lSource;
for(i = lByteLen-1; i >= 0; i--)
{
*(bcd+i) = (((lNumber%100) / 10) << 4) | ((lNumber%100) % 10);
lNumber /= 100;
}
}
这个是某一朋友给的函数
但是我调用也得不到正确结果
ppyy
2002-03-16
打赏
举报
回复
to chaisave(save):
你的程序根本不能运行
chaisave
2002-03-16
打赏
举报
回复
我用的是boost库,你可能没装(装一个吧)。
目的只是把int转为字符串,itoa也可以的说。
ppyy
2002-03-16
打赏
举报
回复
c:\project\test\test.cpp(1) : fatal error C1083: Cannot open include file: 'boost/lexical_cast.hpp': No such file or directory
chaisave
2002-03-16
打赏
举报
回复
这和编译器有关么?
我用的是MSVC6.0。
ppyy
2002-03-16
打赏
举报
回复
to chaisave(save) :你是UNIX下的C++吗?
我是用的VC编译器
chaisave
2002-03-16
打赏
举报
回复
#include <boost/lexical_cast.hpp>
#include <algorithm>
#include <string>
using namespace std;
using namespace boost;
char dest[3];
void ToBCD(char src) {
static size_t index = 0;
dest[index++] = src - '0';
}
int main()
{
string src = lexical_cast<string> (125); //125 for example.
for_each(src.begin(), src.end(), ToBCD);
}
//完了,dest就是那个BCD码了
//不能run,给个理由先!
//再说了,你不是只要算法么?
ywls
2002-03-16
打赏
举报
回复
#include<iostream.h>
class convert{
int a[16],b;
public:
convert(){
for(int i=0;i<16;i++)
a[i]=0;
};
void input();
void cal();
void output();
};
void convert::input(){
cout<<"Please input a number:";
cin>>b;
cout<<"OCT:"<<b<<endl;
}
void convert::cal(){
for(int i=15;i>=0;i--){
if(b==1){a[i]=1;break;}
a[i]=b%2;
b/=2;}
}
void convert::output(){
cout<<"BIN:";
for(int i=0;i<16;i++)
cout<<a[i];
}
void main(){
convert instance;
instance.input();
instance.cal();
instance.output();
}
ywls
2002-03-16
打赏
举报
回复
class convert{
int a[16],b;
public:
convert(){
for(int i=0;i<16;i++)
a[i]=0;
};
void input();
void cal();
void output();
};
void convert::input(){
cout<<"Please input a number:";
cin>>b;
cout<<"OCT:"<<b<<endl;
}
void convert::cal(){
for(int i=15;i>=0;i--){
if(b==1){a[i]=1;break;}
a[i]=b%2;
b/=2;}
}
void convert::output(){
cout<<"BIN:";
for(int i=0;i<16;i++)
cout<<a[i];
}
void main(){
convert instance;
instance.input();
instance.cal();
instance.output();
}
vcshcn
2002-03-15
打赏
举报
回复
两者相等,只不过占位不同,转什么呀
可以移位,在与或等
chaisave
2002-03-15
打赏
举报
回复
char src[LEN];
char dest[LEN];
void ToBCD(char src) {
static size_t index = 0;
dest[index++] = src - '0';
}
ppyy
2002-03-15
打赏
举报
回复
不是转换成16进制啊
而是转换成8421BCD码
是二进制的
ppyy
2002-03-15
打赏
举报
回复
把每个字母减去'0'???怎么减?
chaisave
2002-03-15
打赏
举报
回复
设10进制数为d,BCD码数为b
先把d转为字符串s,
再把每个字母减'0'就是BCD码
for_each(s.begin(), s.end(), ToBCD)
ziqiriying
2002-03-15
打赏
举报
回复
也就是转化成16进制数
使用堆栈
int a = 10;
while( a!= 0 )
{
int temp ;
temp = a%2;
a = a/2;
push( temp );
}
ma.rar_visual c
在"ma.cpp"这个程序中,可能包含了一些关键函
数
,如`bcdToHex`,用于将
8421
BCD码
转换成
16进制。这个过程可能涉及到以下步骤: 1. 检查输入的
8421
BCD码
是否有效,即每个四位二进制部分不超过9(1001)。 2. 将
8421
BCD...
对网友求助问题的几个回帖展示之四十六
解决方案中提到首先将VB存储器中的
数
转换为字整
数
,然后通过I_BCD指令将其转换为
BCD码
,并将这个
BCD码
存放至另一个存储器中去。分解后的十位和个位
数
字会分别存储在两个不同的字节中。 2. 字节和字的处理:在处理...
基于单片机的
数
字抢答器设计.docx
通过译码电路,可以将二进制电平转换为显示器可以识别的
BCD码
,并利用消隐端控制
数
码管的显示与隐藏。 方案设计中,抢答器选择了51系列单片机STC89C52作为控制核心,因为其技术成熟,周围辅助电路较少,便于控制和...
8086汇编语程序设计
此外,还介绍了
BCD码
(二进制编码的十进制
数
)和ASCII码的使用,以及如何在二进制、十进制和十六进制之间进行转换。 #### 系统总线与寄存器 系统总线是CPU与外部世界通信的关键组件,包括
数
据总线、地址总线和控制...
微机原理课件
- **计算机中的
数
和编码**:讲解计算机内部如何表示和处理
数
字,包括二进制、八进制、十六进制等不同进制的转换
方法
,以及ASCII码、
BCD码
等常用编码方式。 - **逻辑单元和逻辑部件**:介绍计算机系统中逻辑门、...
C语言
70,022
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章