随便练习的进制转换

十六进制转化为十进制

#include<stdio.h>
#include<math.h>
#include<string>
#include<iostream>
using namespace std;
int main()
{
     string s;
     cin>>s;
     int m=s.size();
     long long sum=0;
     for(int i=0;i<s.size();i++)
     {
          switch(s[i])
          {
               case 'F': sum+=15*pow(16,--m);break;
               case 'E': sum+=14*pow(16,--m);break;
               case 'D': sum+=13*pow(16,--m);break;
               case 'C': sum+=12*pow(16,--m);break;
               case 'B': sum+=11*pow(16,--m);break;
               case 'A': sum+=10*pow(16,--m);break;
               default: sum+=(s[i]-'0')*pow(16,--m);break;
          }
     }
     cout<<sum;
     return 0;
}

十六进制转化为八进制

#include <iostream>
#include <string>
using namespace std;
int arr[10000005];
int main()
{
  int len,i,j;
  string str,str2;
    cin>>str;
    len=str.length();
    str2="";
    // 十六进制转换为二进制
    for(i=0;i<len;++i)
    {
      switch(str[i])
      {
      case '0':str2+="0000";break;
      case '1':str2+="0001";break;
      case '2':str2+="0010";break;
      case '3':str2+="0011";break;
      case '4':str2+="0100";break;
      case '5':str2+="0101";break;
      case '6':str2+="0110";break;
      case '7':str2+="0111";break;
      case '8':str2+="1000";break;
      case '9':str2+="1001";break;
      case 'A':str2+="1010";break;
      case 'B':str2+="1011";break;
      case 'C':str2+="1100";break;
      case 'D':str2+="1101";break;
      case 'E':str2+="1110";break;
      case 'F':str2+="1111";break;
      default:break;
      }
    }
    // 补齐位数,使成为3的倍数
    if(len%3==1)
     str2="00"+str2;

    else if(len%3==2)
     str2="0"+str2;

    len=str2.length();
    // 二进制转换八进制
    j=0;
    for(i=0;i<=len-2;i+=3)
    {
      arr[j]=(str2[i]-'0')*4+(str2[i+1]-'0')*2+(str2[i+2]-'0');
      ++j;
    }
    for(i=0;i<j;++i)
    {
      if(i==0 && arr[i]==0)    
            continue;//使第一个数不为0
      cout<<arr[i];
    }
    cout<<endl;
  return 0;
}

十进制转十六进制

 1 #include <iostream>
 2  #include <string.h>
 3   using namespace std;
 4   int main()
 5   {
 6       char hex[11];
 7       int n,i=0;
 8       cin>>n;
 9      if(n==0)    //输入为0的情况
10          cout<<0;
11       while(n){
12          int t=n%16;
13          if(t>9)
14              hex[i++]=t-10+'A';
15          else
16              hex[i++]=t+'0';
17          n/=16;
18      }
19      hex[i]='\0';//字符串以/0结束
20      cout<<strrev(hex)<<endl;    //倒序输出字符串
21     return 0;
22  }

 

转载于:https://www.cnblogs.com/yuxingyoucan/p/5172403.html

内容概要:该论文聚焦于T2WI核磁共振图像超分辨率问题,提出了一种利用T1WI模态作为辅助信息的跨模态解决方案。其主要贡献包括:提出基于高频信息约束的网络框架,通过主干特征提取分支和高频结构先验建模分支结合Transformer模块和注意力机制有效重建高频细节;设计渐进式特征匹配融合框架,采用多阶段相似特征匹配算法提高匹配鲁棒性;引入模型量化技术降低推理资源需求。实验结果表明,该方法不仅提高了超分辨率性能,还保持了图像质量。 适合人群:从事医学图像处理、计算机视觉领域的研究人员和工程师,尤其是对核磁共振图像超分辨率感兴趣的学者和技术开发者。 使用场景及目标:①适用于需要提升T2WI核磁共振图像分辨率的应用场景;②目标是通过跨模态信息融合提高图像质量,解决传统单模态方法难以克服的高频细节丢失问题;③为临床诊断提供更高质量的影像资料,帮助医生更准确地识别病灶。 其他说明:论文不仅提供了详细的网络架构设计与实现代码,还深入探讨了跨模态噪声的本质、高频信息约束的实现方式以及渐进式特征匹配的具体过程。此外,作者还对模型进行了量化处理,使得该方法可以在资源受限环境下高效运行。阅读时应重点关注论文中提到的技术创新点及其背后的原理,理解如何通过跨模态信息融合提升图像重建效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值