题解 | #进制转换#

进制转换

http://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6

不用scanf("%i",a),试着粗暴整了整……
思路:
(1)2^31 准备8个十六进制的位置就够了。初始化符号数组,填充‘/0’。初始化整数数组,填充0。
(2)例如,读取 2 C 3 D \n \0 \0 \0,倒序后为 \0 \0 \0 \n D 3 C 2,挑选 非\0 非\n 的有效字符,结果为 D 3 C 2 \0 \0 \0 \0,记作字符数组 a。
       这样,转换十进制,就可以用,sum = a[0]*16^0a[1]*16^1 + a[2]*16^2 + … + a[8]*16^8
(3)但是,在此之前,要把字数数组 a 中的字符,转换为十六进制对应的 数字,存储到整数数组 d 中
        字数数组 a 中的字符有4类:
           a[i]>='a'&&a[i]<='f'                d[i]=a[i]-'a'+10
           a[i]>='A'&&a[i]<='F'               d[i]=a[i]-'A'+10
           a[i]>='0'&&a[i]<="9"              d[i]=a[i]-'0'    
           最后的情况:a[i]=='\0'          d[i]=a[i]-'\0';
     
程序:
#include <stdio.h>
#include <string.h>
int main ()
{
    char aa[8]={'\0'},b[2]={'\0'},a[8]={'\0'},bb[8]={'\0'};//2^31 准备8个十六进制的位置就够了
    int d[8]={0};
   while (scanf("%2c",b)>0)
   {
       scanf("%8c",aa);
       int i,j=-1,sum=0;
       //倒序
       for (i=0;i<8;i++)
       {
           bb[j+8]=aa[i];
           j--;
       } 
       //挑选有效字符
       j=0;
       for (i=0;i<8;i++)
       {
           if ((bb[i]!='\0')&&(bb[i]!='\n'))
           {
               a[j]=bb[i];
               j++;
           }
       }
       //计算
       float ji=1/16.0;//别忘了是浮点型
       for (i=0;i<8;i++)
       {
         if (a[i]>='a'&&a[i]<='f')
             d[i]=a[i]-'a'+10;
         else if (a[i]>='A'&&a[i]<='F')  
             d[i]=a[i]-'A'+10;
           else if (a[i]>='0'&&a[i]<="9")
               d[i]=a[i]-'0';
           else
               d[i]=a[i]-'\0';
           ji=ji*16;
          sum=sum+d[i]*ji;
       }
       printf("%d",sum);
   }
    
}
全部评论

相关推荐

美团开奖了,谁说测开比后端薪资低?谁说前端比后端薪资低?好了你又要说后端可以争取sp、ssp,但是能拿到美团白菜offer的就已经算是人中龙凤了,拿到sp、ssp更是凤毛麟角!依旧劝退后端!你后端学历内卷炼狱!实习经历卷的爆!甚至无法入行!入行了也只是和测开、前端的一般!1.学历,最痛的一击!后端工程师的第一步,走得不是技术,而是学历!想要进入大厂?好好看清楚自己的身份证:没有名校背景,别想着进美团、字节、腾讯!&nbsp;面试官看你的第一眼就会想:“呵,去,给你点面试机会,看看你的技术!”什么?你说自己有技术?不好意思,来点GitHub链接,Project经历,能让面试官笑着赶你走。你没个985、211,双一流,根本就无法站稳在这场技术竞赛的起点。你想进大厂,没学历,没技术!永远只有一个词——&nbsp;“被无情拒绝”。2.&nbsp;薪资:你不过是和前端、测开的一匹马“后端工程师薪资高?能进SSP就是牛逼!”SSP?&nbsp;听起来像是你梦想的银河,但实际上能拿到这个级别的人&nbsp;凤毛麟角,除非你在面试官面前像神话人物一样打了个响指,否则你连SSP的尾巴都摸不着。至于你说的“前端薪资不高”?别逗了,前端都在笑你呢,&nbsp;他们搞个页面,工资比你写个亿级请求接口还多。你说你辛辛苦苦优化API、调度缓存,别人搞个UI设计就能多拿几千块。前端已经不止是个展示层了,他们赚得比你还轻松,而你不过是服务器上疯狂跑“CRUD操作”的那只笨重的工蚁。3.&nbsp;后端的真正意义:修&nbsp;Bug,解决问题,下一份工作还是修&nbsp;Bug有多少人觉得后端是系统架构、数据库优化的高端战场?醒醒吧!&nbsp;后端的真正使命:维护旧项目,修复别人留下的烂摊子。你觉得自己能构建一个完美的系统?不!你只会一边修复技术债务,一边打着&nbsp;“重构”&nbsp;的旗号,换来的是&nbsp;“重构再重构”&nbsp;的无尽循环。而且,别告诉我你能专心写代码。你又要写代码,又要看服务器日志,没事还得帮别人&nbsp;修崩的数据库,给前端数据源做“格式化”。你就是那块永远处于消耗型工作的&nbsp;“万金油”。4.&nbsp;晋升?哈哈哈,你是在做梦!你以为后端开发是一条顺风顺水的快速晋升路线?错!&nbsp;你永远只能在一个“程序员”的岗位上打转,或者你为自己设立目标:“我要成为架构师”,那真的是在妄想。架构师?高级开发?靠近那条道路,你的心脏会先被晋升难度给捏住,你前方只有一座座高不可攀的技术山。别看那些SSP,架构师,架构啥呀?公司里的架构都是前端架构师,你就坐在后端的角落里,照顾着你那些满是错误的API和服务器。5.&nbsp;加班?还是加班!你以为后端开发能像文艺片那样“偶尔加个班”?哈哈,傻了吧!&nbsp;后端开发的生活是无休止的加班和修bug,你不仅要写接口,还得守夜调度、监控系统性能。就连你写的那个“完美的数据库查询”,也可能在&nbsp;第二天&nbsp;被前端因为“页面卡顿”给打回原形。“没有加班,你还能吃什么饭?”你说你是程序员,结果你的生活全是&nbsp;熬夜加班、调试、重启。前端跑个页面,喝个咖啡就能过关,而你呢,熬夜跟数据库调试,最后还是那个穷忙的死循环。6.&nbsp;技术天花板:架构?技术深度?笑死了!后端开发的天花板?那不过是个永远也摸不着的架构师“梦想”,你能掌握几款框架、几种数据库、两三套微服务架构,最后也不过是个&nbsp;管理端的“搬运工”。你没办法“打破天花板”,更没有机会跳出“自己写个爬虫”或者“API接口”的死循环。技术深度?你也不过是&nbsp;“技术债务”的修复者,一天到晚都在修补“老旧系统”的缺陷,偶尔听前端同学聊聊他们React、Vue的最新版本,你根本无法理解他们说的是什么。
开心小狗🐶:感觉后端有点像考研的0812,报名的时候都想冲0812,看不上0854。但是真入学了,不都是众生平等
点赞 评论 收藏
分享
10-29 22:30
吉林大学 Java
同专业学长学姐,去互联网大厂的起薪&nbsp;15k+,去国企&nbsp;IT&nbsp;岗的也有&nbsp;12k+,就连去中小厂的都基本&nbsp;13k&nbsp;起步😤&nbsp;我投的传统行业技术岗,拼死拼活拿到&nbsp;1Woffer,本来还挺开心,结果逛了圈牛客直接破防,同是校招生,行业差距怎么就这么大啊!
喵喵喵6_6:应该哪里不对吧,大厂都是20k以上的,10k那种对于985本的学生基本就是点击一下过了笔试就送的,我前两天刚拿了一个11k,笔试完第2天就打电话了,非科班。坏消息是c++岗开这么低真是刷新认知了
校招生月薪1W算什么水平
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务