社区
C语言
帖子详情
寻求将10进制数转换成8421BCD码的方法
ppyy
2002-03-15 11:08:26
请告诉我计算方法
代码我自己写
谢谢
...全文
1924
15
打赏
收藏
寻求将10进制数转换成8421BCD码的方法
请告诉我计算方法 代码我自己写 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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 );
}
8421
BCD码
5421
BCD码
余三码 格雷码 余三循环码之间的关系,转换以及简易
方法
本文详细介绍了
8421
BCD码
、5421
BCD码
、余三码、格雷码及余三循环码的概念与特点,阐述了它们之间的转换
方法
。通过实例演示,帮助读者理解各种编码的应用场景及转换技巧。
十进制转
8421
_
BCD码
本文介绍了十进制转
8421
_
BCD码
的原理,包括
8421
码的概念和转换思路,并详细阐述了使用Verilog编程实现这一转换的过程,以及仿真验证的结果分析。
BCD码
:
8421
码
本文介绍了
BCD码
(二-十进制码)的概念,特别是
8421
码这一有权码形式。通过
8421
码,可以方便地在编程中提取十进制
数
的个、十、百、千位。文章详细阐述了
8421
码的二进制到十进制和十进制到二进制的转换算法,并提供了具体的转换示例,有助于理解其工作原理。
什么是
BCD码
?
BCD码
编码规则
本文详细介绍了
BCD码
(Binary-Coded Decimal)的工作原理、常见编码方式(如
8421
、5421和2421码),以及它们在会计系统和高精度计算中的应用。通过实例和比较,展示了
8421
码的直观性和不同编码的适用场景。
8421
BCD码
与十进制之间的转换
本文详细介绍了
BCD码
(
8421
码)的工作原理,包括其每位表示十进制的二进制形式,无效码范围及其在加法运算中的处理
方法
。通过实例演示了如何进行
BCD码
的转换和计算,是理解二进制与十进制转换的好助手。
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章