| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2871 人关注过本帖, 1 人收藏
标题:c++进制问题
只看楼主 加入收藏
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
收藏
得分:0 
我的还支持多位16进制

2020-03-10 14:55
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
收藏
得分:0 
程序代码:
10楼代码少个条件,补充一下
虽然代码很糟糕,但也不能给别人缺胳膊少腿的代码
#include<iostream>
#include<string>
#include<bitset>
using namespace std;
int main()
//两个字符,输出10进制16进制
//字符转十进制-55,
//一位数字输出ch,一位字符输出10进制-55
//数字加字符=2+,数字变2进制,左移4位字符变2进制加数字2进制
//转换10进制(不可行)
//
{string a;cin>>a;int count{};int tem{};
int shi[2];int fg{};int i{};int bin1{};

 for(i=0;a[i];++i)
    { if(a[i]>='0'&&a[i]<='9')
    {++count;}
     else if(a[i]>='A' && a[i]<='Z')
     {++tem;}
     }
     fg=count+tem;//输入字符数字和字母的位数
     //cout<<fg;
    if((fg==1)&&(a[0]>='0'&&a[0]<='9'))
     {cout<<a[0];cout<<endl;cout<<"十六进制"<<a;//一位且是数字打印字符
     }
     else if((fg==1)&&(a[0]>='A' && a[0]<='Z'))
    {cout<<static_cast<int>(a[0])-55;
    cout<<endl;
      cout<<"十六进制"<<a;//一位且是字母打印字字母二进制
    }
     else
       {//2位的情况
           
           if(tem==1){int x= static_cast<int>(a[0])-48;     
     int y= static_cast<int>(a[1])-55;
     
   cout<<x*16+y;
     
      cout<<endl;//字母有一个,第一个减48减55数字字母变10进制,推导出十六进制总是a【0】*16+a[1]
      cout<<"十六进制"<<a;}
      if(tem==2)
      //字母2位的情况同上
      {int x= static_cast<int>(a[0])-55;     
     int y= static_cast<int>(a[1])-55;
          cout<<x*16+y;
      cout<<endl;
      cout<<"十六进制"<<a;}
      if(count==2)
      {  int x=static_cast<int>( a[0])-48;
          int y=static_cast<int>(a[1])-48;
         cout<<x*16+y; 
         cout<<endl;
         cout<<"十六进制"<<a;
          }
      
      }
      


 }



把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-04-08 19:59
快速回复:c++进制问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018893 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved