十进制数转二进制字符串

本文介绍了如何在MFC中实现一个从十进制数转换为二进制字符串的函数,用于CRC编码作业。通过将字符串转为长整型,计算2的幂并设置字符串长度,然后进行位转换,最终得到二进制表示。在转换过程中,需要注意对数的处理和字符串的更新。
摘要由CSDN通过智能技术生成

    今天为了完成老师布置的一个CRC(循环冗余校检)的编码作业,其中有一个子程序是要从十进制转成二进制字符串显示!不做不知道~~~做起来竟然调试得我没有脾气~~!!想不到以为很简单,竟然是要考虑很多东西的哦呵~~~差点受打击了~~~(因为方便的原因用上到MFC里的CString类)

 

//十进制转二进制
void CCRC::DecToBinary( CString & ChangeString )
{

//先将字符串型的数转为长整型整数
 unsigned long num = atol(ChangeString.GetBuffer(ChangeString.GetLength()));
 unsigned long temp = 1;

 int k = 0;

 //求出最大不超过当前数的2次幂,设置字符串长度
 while ( temp < num )
 {
  k++;
  temp*=2;
 }

//重新设置字符串长度

 ChangeString.GetBufferSetLength(k);
 ChangeString.SetAt(0,'1');

 temp /= 2;
 num -= temp;
 
 k = 1;

//当转换数大于0,找出一个不大于num的2次幂数,
 while( num >= 0 && temp !=

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值