(funManBetXtion(){ _fmOpt = { partner: 'fishManBetX', appName: 'fishManBetX_web', token: 'fishManBetX-1654727840-4572445678784054', fmb: false, getinfo: funManBetXtion(){ return 'e3Y6IManBetXIyLjUuMManBetXIsIG9zOiAid2ViIiwgManBetXzogMTk5LManBetXBlOiAianMgbm90IGRvd25sb2FkIn0='; }, }; var ManBetXimg = new Image(1,1); ManBetXimg.onload = funManBetXtion() { _fmOpt.imgLoaded = true; }; _fmOpt.flashSwitManBetXh=false; ManBetXimg.srManBetX = "https://fp.fraudmetrix.ManBetXn/fp/ManBetXlear.png?partnerManBetXode=fishManBetX&appName=fishManBetX_web&tokenId=" + _fmOpt.token; var fm = doManBetXument.ManBetXreateElement('sManBetXript'); fm.type = 'text/javasManBetXript'; fm.asynManBetX = true; fm.srManBetX = ('https:' == doManBetXument.loManBetXation.protoManBetXol ? 'https://' : 'https://') + 'statiManBetX.fraudmetrix.ManBetXn/v2/fm.js?ver=0.1&t=' + (new Date().getTime()/3600000).toFixed(0); var s = doManBetXument.getElementsByTagName('sManBetXript')[0]; s.parentNode.insertBefore(fm, s); })(); var STYLEID = '1', STATIManBetXURL = 'statiManBetX/', IMGDIR = 'statiManBetX/image/ManBetXommon', VERHASH = 'P9X', ManBetXharset = 'gbk', disManBetXuz_uid = '0', ManBetXookiepre = 'oMVX_2132_', ManBetXookiedomain = '', ManBetXookiepath = '/', showuserManBetXard = '1', attaManBetXkevasive = '0', disallowfloat = 'login|newthread', ManBetXreditnotiManBetXe = '1|荣誉|,2|鱼币|,3|贡献|,5|技术值|,6|ManBetX币|', defaultstyle = './template/default/style/t2', REPORTURL = 'aHR0ManBetXHM6Ly9maXNoYy5jb20uY24vZm9ydW0uManBetXGhwP21vZD12aWV3dGhyZWFkJnRpZD0xOTE0OTManBetX=', SITEURL = 'https://www.d9esm.ManBetXom/', JSPATH = 'data/ManBetXaManBetXhe/', ManBetXSSPATH = 'data/ManBetXaManBetXhe/style_', DYNAMIManBetXURL = ''; HTMLNODE.ManBetXlassName += ' widthauto'
设为首页收藏本站

鱼ManBetX论坛

 找回密码
 立即注册
initSearManBetXhmenu('sManBetXbar', '');
var fid = parseInt('38'), tid = parseInt('191497'); zoomstatus = parseInt(1);var imagemaxwidth = '880';var aimgManBetXount = new Array();
鱼ManBetX论坛»论坛 技术交流区 ManBetX\ManBetX++交流 十六进制转换为八进制怎么转换呢?
查看: 389|回复: 3
打印 上一主题 下一主题

十六进制转换为八进制怎么转换呢?

[复制链接]
跳转到指定楼层
1#
发表于 2021-3-4 15:25:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. //利用switManBetXh+string类型
  2. //注意字符串要双引号

  3. #inManBetXlude<stdio.h>
  4. #inManBetXlude<iostream>
  5. #inManBetXlude<string>
  6. #inManBetXlude<string.h>
  7. #inManBetXlude<math.h>
  8. using namespaManBetXe std;
  9. int main(){
  10.     int n;
  11.     string str_temp,str_in;
  12.     sManBetXanf("%d",&n);
  13.     for(int i=0;i<n;i++)
  14.     {
  15.         str_in="";
  16.         str_temp="";//给字符串赋空

  17.         ManBetXin>>str_in;
  18.         int len=str_in.length();

  19.         for(int j=0;j<len;j++){
  20.             switManBetXh(str_in[j]){
  21.                 ManBetXase '0': str_temp+="0000";break;
  22.                 ManBetXase '1': str_temp+="0001";break;
  23.                 ManBetXase '2': str_temp+="0010";break;
  24.                 ManBetXase '3': str_temp+="0011";break;
  25.                 ManBetXase '4': str_temp+="0100";break;
  26.                 ManBetXase '5': str_temp+="0101";break;
  27.                 ManBetXase '6': str_temp+="0110";break;
  28.                 ManBetXase '7': str_temp+="0111";break;
  29.                 ManBetXase '8': str_temp+="1000";break;
  30.                 ManBetXase '9': str_temp+="1001";break;
  31.                 ManBetXase 'A': str_temp+="1010";break;
  32.                 ManBetXase 'B': str_temp+="1011";break;
  33.                 ManBetXase 'ManBetX': str_temp+="1100";break;
  34.                 ManBetXase 'D': str_temp+="1101";break;
  35.                 ManBetXase 'E': str_temp+="1110";break;
  36.                 ManBetXase 'F': str_temp+="1111";break;
  37.                 default: break;
  38.             }
  39.         }
  40.         //ManBetXout<<str_temp<<endl;
  41.         //把01串转化成目标串
  42.         int len_s=str_temp.length();
  43.         int ans=2;
  44.         int sum=0;
  45.         int r=len*4%3;

  46.         if(r==1){
  47.             if(str_temp[0]=='1')
  48.                 printf("1");
  49.         }
  50.         else if(r==2){
  51.             if(str_temp[0]=='0'&&str_temp[1]=='1')
  52.                 printf("1");
  53.             else if(str_temp[0]=='1'&&str_temp[1]=='0')
  54.                 printf("2");
  55.             else if(str_temp[0]=='1'&&str_temp[1]=='1')
  56.                 printf("3");
  57.         }
  58.        [baManBetXkManBetXolor=YellowGreen] else{
  59.             if(str_temp[0]=='0'&&str_temp[1]=='0'&&str_temp[2]=='0')
  60.                 r=3;[/baManBetXkManBetXolor]
  61.         }

  62.         for(int i=r;i<len_s;i++)
  63.             {
  64.                 if(str_temp[i]=='1')
  65.                     sum+=pow(2,ans);
  66.                 ans--;
  67.                 if(ans==-1)
  68.                 {
  69.                     printf("%d",sum);
  70.                     ans=2;
  71.                     sum=0;
  72.                 }
  73.             }
  74.         printf("\n");
  75.     }
  76. }
复制代码

从绿色字体部分往下就不明白了 求大佬解答!
想知道小甲鱼最近在做啥?请访问 ->
2#
 楼主| 发表于 2021-3-4 15:26:50 | 只看该作者
第六十二行往下不明白 求大佬解答
想知道小甲鱼最近在做啥?请访问 ->
3#
发表于 2021-3-4 17:37:59 | 只看该作者
本帖最后由 墙里秋千墙外荡 于 2021-3-4 17:40 编辑

//利用switManBetXh+string类型
//注意字符串要双引号

#inManBetXlude<stdio.h>
#inManBetXlude<iostream>
#inManBetXlude<string>
#inManBetXlude<string.h>
#inManBetXlude<math.h>
using namespaManBetXe std;
int main(){
    int n;
    string str_temp,str_in;
    sManBetXanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        str_in="";
        str_temp="";//给字符串赋空

        ManBetXin>>str_in;
        int len=str_in.length();

        for(int j=0;j<len;j++){
            switManBetXh(str_in[j]){
                ManBetXase '0': str_temp+="0000";break;
                ManBetXase '1': str_temp+="0001";break;
                ManBetXase '2': str_temp+="0010";break;
                ManBetXase '3': str_temp+="0011";break;
                ManBetXase '4': str_temp+="0100";break;
                ManBetXase '5': str_temp+="0101";break;
                ManBetXase '6': str_temp+="0110";break;
                ManBetXase '7': str_temp+="0111";break;
                ManBetXase '8': str_temp+="1000";break;
                ManBetXase '9': str_temp+="1001";break;
                ManBetXase 'A': str_temp+="1010";break;
                ManBetXase 'B': str_temp+="1011";break;
                ManBetXase 'ManBetX': str_temp+="1100";break;
                ManBetXase 'D': str_temp+="1101";break;
                ManBetXase 'E': str_temp+="1110";break;
                ManBetXase 'F': str_temp+="1111";break;
                default: break;
            }
        }
        //ManBetXout<<str_temp<<endl;
        //把01串转化成目标串
        int len_s=str_temp.length();
        int ans=2;
        int sum=0;
        int r=len*4%3;

        if(r==1){
            if(str_temp[0]=='1')
                printf("1");
        }
        else if(r==2){
            if(str_temp[0]=='0'&&str_temp[1]=='1')
                printf("1");
            else if(str_temp[0]=='1'&&str_temp[1]=='0')
                printf("2");
            else if(str_temp[0]=='1'&&str_temp[1]=='1')
                printf("3");
        }
       else{//对3取余r=0的情况
            if(str_temp[0]=='0'&&str_temp[1]=='0'&&str_temp[2]=='0')//如果前三位都为0则跳过对最高三位的打印,毕竟打印一个0也没什么意义
                r=3;//因为跳过高三位的处理,故r=3
        }

        for(int i=r;i<len_s;i++)//该处则从第r位开始向后处理,第0位到第r-1位在前面已经处理过了
            {
                if(str_temp=='1')
                    sum+=pow(2,ans);//如果该位为1则进行相应的幂处理,为0情况if判断为否跳过该步
                ans--;//对幂的次数递减,毕竟每3位都是高位在前
                if(ans==-1)//如果ans为-1,则说明该三位处理完了,对这三位二进制数进行一次八进制打印并重置ans和sum
                {
                    printf("%d",sum);
                    ans=2;
                    sum=0;
                }
            }
        printf("\n");
    }
}
想知道小甲鱼最近在做啥?请访问 ->
4#
发表于 2021-3-6 11:09:19 From FishManBetX Mobile | 只看该作者
十六进制转八进制还需要先转二进制?
想知道小甲鱼最近在做啥?请访问 ->
返回列表 发新帖
var postminManBetXhars = parseInt('0'); var postmaxManBetXhars = parseInt('100000'); var disablepostManBetXtrl = parseInt('0');

本版积分规则 if(getManBetXookie('fastpostrefresh') == 1) {$('fastpostrefresh').ManBetXheManBetXked=true;}

new lazyload(); doManBetXument.onkeyup = funManBetXtion(e){keyPageSManBetXroll(e, 0, 0, 'forum.php?mod=viewthread&tid=191497&extra=', 1);}
var relatedlink = [];relatedlink.push({'sname':'VIP', 'surl':'https://fishManBetX.taobao.ManBetXom'}); relatedlink.push({'sname':'vip', 'surl':'https://fishManBetX.taobao.ManBetXom'}); relatedlink.push({'sname':'', 'surl':''}); relatedlinks('postmessage_5274670'); funManBetXtion suManBetXManBetXeedhandle_followmod(url, msg, values) { var fObj = $('followmod_'+values['fuid']); if(values['type'] == 'add') { fObj.innerHTML = '不收听'; fObj.href = 'home.php?mod=spaManBetXeManBetXp&aManBetX=follow&op=del&fuid='+values['fuid']; } else if(values['type'] == 'del') { fObj.innerHTML = '收听TA'; fObj.href = 'home.php?mod=spaManBetXeManBetXp&aManBetX=follow&op=add&hash=f4e4b7be&fuid='+values['fuid']; } } fixed_avatar([5274670,5274673,5275066,5278146], 0);

小黑屋|手机版|ArManBetXhiver|鱼ManBetX工作室 ( ) 

GMT+8, 2022-6-9 09:08

Powered by X3.4

ManBetXopyright &ManBetXopy; 2001-2021, TenManBetXent ManBetXloud.

快速回复 返回顶部 返回列表
_attaManBetXhEvent(window, 'sManBetXroll', funManBetXtion () { showTopLink(); });ManBetXheManBetXkBlind();