[问题点数:50分,结帖人lslvxy]　一键查看最优答案　确认一键查看最优答案?　本功能为VIP专享,开通VIP获取答案速率将提升10倍哦!　取消　本版专家分:0　GitHub　绑定GitHub第三方账户获取　结帖率　100%　我有一个数组,存放的是6个16进制的数据:　Y[0]=0x01;　Y[1]=0x02;　Y[2]=0x03;　Y[3]=0x04;　Y[4]=0x05;　Y[5]=0x06;　首先要将数组转换为一个16进制的数据,结果是:　0x060504030201　然后再将得到的16进制数据转换为10进制的数据。　新手不会,求大神帮忙,最好是能写个完成的main方法。感谢了　本版专家分:193　其实只要搞清楚　十进制与十六进制是怎么换算的,你就会写了。　那什么八进制转十六进制什么什么的都不在话下了。　JavaScript　如何将一个数转换为其他进制的数　示例:将2进制的10000,转化为16进制的数字...　|--如题,将一个2进制的10000,转化为16进制的数字1　var　num　=　10000;2　//　先将2进制的10000转化为10进制的test3　var　test　=　parseInt(num,　10);4　//再将10进制的test转化为16进制的数字5　console.log(test.toString(16));代码内容...　本版专家分:0　GitHub　绑定GitHub第三方账户获取　引用　1　楼hm530　的回复:　其实只要搞清楚　十进制与十六进制是怎么换算的,你就会写了。　那什么八进制转十六进制什么什么的都不在话下了。　怎么把题目中的数组转换成一个数呢?　其他进制数到十进制数的转化　n=n*k+cur;(最终n为k进制数对应的十进制数,cur为当前读取的一位数值),这是从C程序设计语言习题书上看来的。自己以前都是用pow(k,i)实现进制转换,显得很繁琐。...　本版专家分:1634　签到新秀　累计签到获取,不积跬步,无以至千里,继续坚持!　这个问题,你要说出你的数组Y[]到底是什么类型的才行啊,是char还是int又或者是别的什么。　M1卡的序列号如何转换　公司做一个IC卡读写的项目,用的卡是M1卡,因为要和别的系统对接,并且卡信息是写在别的系统里的,读出卡的序列号之后需要转换。我用的深圳明华澳汉的RF35读卡器,最终转换出来的卡号有的正确,有的错,还有　本版专家分:0　GitHub　绑定GitHub第三方账户获取　引用　3　楼KenZhang1031　的回复:　这个问题,你要说出你的数组Y[]到底是什么类型的才行啊,是char还是int又或者是别的什么。　是char类型的。　实例源码5　---　四位十六进制转换为十进制　这个问题是在处理485解帧时,存在几位十六进制代表所需要的值,想知道一种方法直接得到所需的值解决方法:http://bbs.csdn.net/topics/391029805问题:例如:　char　sDec[4]　=　{0x05,0xc5,0xb3,0xea};　怎样把　0x05,0xc5,0xb3,0xea　组合成一个十六进制数　0x05c5b3ea　,...　本版专家分:3263　int　main()　{　char　Y[6];　Y[0]=0x01;　Y[1]=0x02;　Y[2]=0x03;　Y[3]=0x04;　Y[4]=0x05;　Y[5]=0x06;　int　i　=　5;　LONGLONG　llMerge　=　0;　while(i　>=　0)　{　llMerge　=　llMerge　<<　0x8　|　Y[i];　i--;　}　return　0;　}　//转成一个LONGLONG类型　本版专家分:4385　黄花　2014年1月C/C++大版内专家分月排行榜第二　int　main()　{　char　Y[]　=　{0x01,　0x02,　0x03,　0x04,　0x05,　0x06};　long　long　result　=　0LL;　for　(int　i　=　0;　i　<　6;　++i)　{　long　long　part　=　Y[i];　result　|=　part　<<　8*i;　}　std::cout　<<　std::hex　<<　result　<<　std::endl;　return　0;　}　位运算将01字符串转化为相应二进制数　int　len　=　strlen(src);　char　*dst　=　(char*)calloc(ceil(len/8.0),　1);　for　(int　i　=　0;　i　<　len;　i++)　*(dst+i/8)　|=　src[i]-48　比如　char*　src　=　"10101";　转换后为21(十进制)　15(十六进制)　本版专家分:3367　数据都是以2进制的形式存储在内存中,输出只是一种形式,对于小端机器可以如下输出:　unsigned　char　y[]　=　{0x01,0x02,0x03,0x04,0x05,0x06};　printf("%#0.12llx　\n",*(long　long*)y);　printf("%lld　\n",*(long　long*)y);　蓝桥杯基础——01子串(进制转换)　问题描述对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:0000000001000100001100100请按从小到大的顺序输出这32种01串。输入格式本试题没有输入。输出格式输出32行,按从小到大的顺序每行一个长度为5的01串。样例输出00000000010001000011&amp;lt;以下部分省略&amp;gt;方法一(想法简单)...　本版专家分:1634　签到新秀　累计签到获取,不积跬步,无以至千里,继续坚持!　你们不觉得你们的答案不对?楼主明显是希望{0x01,0x02,0x03,0x04,0x05,0x06},最后得到十进制的60504030201。　{0x01,0x02,0x03,0x04,0x05,0x06}转为0x060504030201,如下做:　char　y[]　=　{0x01,　0x02,　0x03,　0x04,　0x05,　0x06};　long　long　b　=　*(long　long　*)y　&　~((long　long)(~0)　<<　(sizeof(y)　*　8));　//　b=0x060504030201　{0x01,0x02,0x03,0x04,0x05,0x06}转为十进制的60504030201,可以不用生成16进制数,如下做:　char　y[]　=　{0x01,　0x02,　0x03,　0x04,　0x05,　0x06};　long　long　c　=　0;　for(int　i=sizeof(y)　-　1;　i>=0;　i--)　{　c　=　c　*　100　+　((y[i]　>>　4)　&　0x0f)　*　10　+　(y[i]　&　0x0f);　}　//　c=60504030201　16进制转10进制,比如0x060504030201转60504030201,如下做:　long　long　b　=　0x060504030201;　long　long　c　=　0;　long　long　count　=　1;　while(b)　{　c　=　c　+　(b　&　0x0f)　*　count;　b　>>=　4;　count　*=　10;　}　//　c=60504030201　LZ可以随意组合得到你想要的最后结果　进制转换(10->任意;任意->10)　Problem　Description输入一个十进制数N,将它转换成R进制数输出。Input输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16,　R<>10)。Output为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。Sample　Input7　2...　本版专家分:0　GitHub　绑定GitHub第三方账户获取　引用　8　楼KenZhang1031　的回复:　你们不觉得你们的答案不对?楼主明显是希望{0x01,0x02,0x03,0x04,0x05,0x06},最后得到十进制的60504030201。　{0x01,0x02,0x03,0x04,0x05,0x06}转为0x060504030201,如下做:　char　y[]　=　{0x01,　0x02,　0x03,　0x04,　0x05,　0x06};　long　long　b　=　*(long　long　*)y　&　~((long　long)(~0)　<<　(sizeof(y)　*　8));　//　b=0x060504030201　{0x01,0x02,0x03,0x04,0x05,0x06}转为十进制的60504030201,可以不用生成16进制数,如下做:　char　y[]　=　{0x01,　0x02,　0x03,　0x04,　0x05,　0x06};　long　long　c　=　0;　for(int　i=sizeof(y)　-　1;　i>=0;　i--)　{　c　=　c　*　100　+　((y[i]　>>　4)　&　0x0f)　*　10　+　(y[i]　&　0x0f);　}　//　c=60504030201　16进制转10进制,比如0x060504030201转60504030201,如下做:　long　long　b　=　0x060504030201;　long　long　c　=　0;　long　long　count　=　1;　while(b)　{　c　=　c　+　(b　&　0x0f)　*　count;　b　>>=　4;　count　*=　10;　}　//　c=60504030201　LZ可以随意组合得到你想要的最后结果　不是直接把0x060504030201转60504030201,而是把0x060504030201转成10进制的数据,最后得到应该是0x060504030201转成10进制之后的数据。　BCD码、十六进制与十进制互转　 　 在做嵌入式软件的设计中,经常会遇到十六进制、BCD码与十进制之间的转换,最近做M1卡的应用中,涉及了大量的十六进制、BCD码与十进制之间的转换。通过对BCD码、十六进制　权的理解,轻松的实现了他们之间的互换。#include #include 功　本版专家分:1634　签到新秀　累计签到获取,不积跬步,无以至千里,继续坚持!　那我提供的第一段代码和上面各位的代码都可以做到。　存在里面的数据无所谓是16进制还是10进制,数值都是那一个。比如存在电脑里面的二进制1100100,它既是十进制100,也是十六进制0x64。　引用　9　楼lslvxy　的回复:　Quote:　引用　8　楼KenZhang1031　的回复:　你们不觉得你们的答案不对?楼主明显是希望{0x01,0x02,0x03,0x04,0x05,0x06},最后得到十进制的60504030201。　{0x01,0x02,0x03,0x04,0x05,0x06}转为0x060504030201,如下做:　char　y[]　=　{0x01,　0x02,　0x03,　0x04,　0x05,　0x06};　long　long　b　=　*(long　long　*)y　&　~((long　long)(~0)　<<　(sizeof(y)　*　8));　//　b=0x060504030201　{0x01,0x02,0x03,0x04,0x05,0x06}转为十进制的60504030201,可以不用生成16进制数,如下做:　char　y[]　=　{0x01,　0x02,　0x03,　0x04,　0x05,　0x06};　long　long　c　=　0;　for(int　i=sizeof(y)　-　1;　i>=0;　i--)　{　c　=　c　*　100　+　((y[i]　>>　4)　&　0x0f)　*　10　+　(y[i]　&　0x0f);　}　//　c=60504030201　16进制转10进制,比如0x060504030201转60504030201,如下做:　long　long　b　=　0x060504030201;　long　long　c　=　0;　long　long　count　=　1;　while(b)　{　c　=　c　+　(b　&　0x0f)　*　count;　b　>>=　4;　count　*=　10;　}　//　c=60504030201　LZ可以随意组合得到你想要的最后结果　不是直接把0x060504030201转60504030201,而是把0x060504030201转成10进制的数据,最后得到应该是0x060504030201转成10进制之后的数据。　本版专家分:0　GitHub　绑定GitHub第三方账户获取　引用　10　楼KenZhang1031　的回复:　那我提供的第一段代码和上面各位的代码都可以做到。　存在里面的数据无所谓是16进制还是10进制,数值都是那一个。比如存在电脑里面的二进制1100100,它既是十进制100,也是十六进制0x64。　Quote:　引用　9　楼lslvxy　的回复:　Quote:　引用　8　楼KenZhang1031　的回复:　你们不觉得你们的答案不对?楼主明显是希望{0x01,0x02,0x03,0x04,0x05,0x06},最后得到十进制的60504030201。　{0x01,0x02,0x03,0x04,0x05,0x06}转为0x060504030201,如下做:　char　y[]　=　{0x01,　0x02,　0x03,　0x04,　0x05,　0x06};　long　long　b　=　*(long　long　*)y　&　~((long　long)(~0)　<<　(sizeof(y)　*　8));　//　b=0x060504030201　{0x01,0x02,0x03,0x04,0x05,0x06}转为十进制的60504030201,可以不用生成16进制数,如下做:　char　y[]　=　{0x01,　0x02,　0x03,　0x04,　0x05,　0x06};　long　long　c　=　0;　for(int　i=sizeof(y)　-　1;　i>=0;　i--)　{　c　=　c　*　100　+　((y[i]　>>　4)　&　0x0f)　*　10　+　(y[i]　&　0x0f);　}　//　c=60504030201　16进制转10进制,比如0x060504030201转60504030201,如下做:　long　long　b　=　0x060504030201;　long　long　c　=　0;　long　long　count　=　1;　while(b)　{　c　=　c　+　(b　&　0x0f)　*　count;　b　>>=　4;　count　*=　10;　}　//　c=60504030201　LZ可以随意组合得到你想要的最后结果　不是直接把0x060504030201转60504030201,而是把0x060504030201转成10进制的数据,最后得到应该是0x060504030201转成10进制之后的数据。　能跟我解释一下这段代码的意思吗?　char　y[]　=　{0x01,　0x02,　0x03,　0x04,　0x05,　0x06};　long　long　b　=　*(long　long　*)y　&　~((long　long)(~0)　<<　(sizeof(y)　*　8));　//　b=0x060504030201　然后还有一个问题,怎么再把b给转回y[]呢?得到这个b之后要经过一系列运算后得到一个值,然后还有再转回char　y[]形式的,请问怎么运算转回去呢?　利用python实现带符号(正负)二进制编码转十进制整数　利用python实现带符号(正负)二进制编码转十进制整数程序代码实现最近在做一个关于带符号二进制整数转十进制的一个小case,去网上搜了很多,发现现有的程序不是很复杂就是写的让人看得不是很明白,针对这个过程,自己写了两个比较简单易懂的函数去实现。def　add_1(binary_inpute):#二进制编码加1　_,out　=　bin(int(binary_inpute,2)+1)....　本版专家分:0　GitHub　绑定GitHub第三方账户获取　现在又有个问题了,我要把这段程序烧到单片机中,但是keil　c51不支持long　long类型的数据。。　能不能把char　y[]　=　{0x01,　0x02,　0x03,　0x04,　0x05,　0x06};直接转换成　char　b=0x060504030201;呢?　然后怎么进行逆运算呢,就是再把b转换成y[]?　16进制byte转换成10进制byte数组　比如原来的十六进制数组为:　byte　hex　=　{0xFF,　0xFF,　0xFF,　0xFF};　那么16进制的0xFFFFFFFF其对应的10进制值为4294967295,　需要转换成10进制数　本版专家分:382455　状元　2017年　总版技术专家分年内排行榜第一　榜眼　2014年　总版技术专家分年内排行榜第二　探花　2013年　总版技术专家分年内排行榜第三　进士　2018年总版新获得的技术专家分排名前十　2012年　总版技术专家分年内排行榜第七　推荐