20131128

描述一:在MFC界面操作中,为了标识不同复选框的组合,可以采用CString来标记不同的选中和未选中位,比如用户权限有6种,每一种可选可不选。如何将选择的CString的“0101”等字符串转换成int 类型,便于读者理解呢?

提炼:MFC中将只含有“0”和"1"的CString字符串转换为int?

答:举例:CString str = "000011";

       char *ch = str.GetBuffer(str.Getlength() + 1);

       str.ReleaseBuffer();

       int num = strtoul(ch,NULL,2);//将字符串转换成无符号长整型 

描述二:依据上面描述,将int 类型转换成二进制数,又该如何操作呢?

提炼:MFC中将CStriing类型转换成int类型,再转换成用字符串表示的二进制形式?

答://将CString 转换成 int

       CString str = "3";

        int  idata = atoi(str);//3

         //将int或者十进制转换成二进制,并依据上题情况实现6位字符串

      CString GetStringTest(int data)

     {   CString   tempstr,outstr;

          int iBin[32];//存储每一位bit的二进制

         int  i = 0;

       //顺序获得二进制的各个位

        while(data)

       {   iBin[ i ] = data%2;

          data  = data / 2;

          i++;

        }

       //输出各个位数

        for(int j = i -1;j >= 0;j--)

        {     tempstr.Format("%d",iBin[j]);

              outstr =outstr + tempstr; 

          }

        //将获得的字符串统一到6位

        int nlen = outstr.GetLength();

         if(nlen < 6)

         {

               int n = 6 - nlen;

              CString ss m= "0";

              for(int m = 1;m < n;m++)

             {

                 ss += "0";

             }

             outstr = ss + outstr;
          }

      return outstr;

}

       

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值