怎样将字符串转换成十六进制以及其逆转换

怎样将字符串转换成十六进制以及其逆转换
怎样将字符串转换成十六进制以及其逆转换

怎样将字符串转换成十六进制以及其逆转换(翻译四)

原文连接:

https://www.360docs.net/doc/441432279.html,/UploadFile/Joshy_geo/

HexConverter10282006021521AM/HexConverter.aspx

怎样将字符串转换成十六进制以及其逆转换。

背景

本文将告诉你怎样将字符串转换成十六进制以及其逆转换。

我为我的智能卡应用而做的这个程序。较早前,我用VB写了一个但是现在我不得不将我的代码转换成C#.通常智能卡都是以十六进制的格式来写入数据的。因为我没有一个好的十六进制转换器来帮我完成这些转换,我不得不自己动手了。

代码

主要转换代码来自Microsoft.VisualBasic类。下面的代码就是将字符串转换成十六进制格式。我们不能直接将所有的字符都转换成十六进制(例如:@#$%^&*()),因此我首先需要获得字符的ASCII码,然后再将ASCII码转换成十六进制。

//为此我用了一个while 循环

while (Data.Length > 0)

{

//首先用substring 来获取每一个字符

sValue= Data.Substring(0, 1).ToString()

//然后将字符转换成ascii

sValue= Strings.Asc(sValue)

//然后将ascii值转换成十六进制

sValue = Conversion.Hex(sValue)

//转换后就去掉该字符

Data = Data.Substring(1, Data.Length - 1);

sHex = sHex + sValue;

}

在这个应用中我使用了两个函数

Data_Hex_Asc(data)

这个函数负责将字符转换成十六进制

public string Data_Hex_Asc(ref string Data)

{

string Data1 = "";

string sData = "";

while (Data.Length > 0)

//first take two hex value using substring.

//then convert Hex value into ascii.

//then convert ascii value into character.

{

Data1 =

System.Convert.ToChar(System.Convert.ToUInt32(Data.Substring(0, 2), 16)).ToString(); sData = sData + Data1;

Data = Data.Substring(2, Data.Length - 2);

}

return sData;

}

Data_Asc_Hex(data)

这个函数负责将十六进制转换成字符

public string Data_Asc_Hex(ref string Data)

{

//first take each charcter using substring.

//then convert character into ascii.

//then convert ascii value into Hex Format

string sValue;

string sHex = "";

while (Data.Length > 0)

{

sValue = Conversion.Hex(Strings.Asc(Data.Substring(0, 1).ToString()));

Data = Data.Substring(1, Data.Length - 1);

sHex = sHex + sValue;

}

return sHex;

}

十进制数与十六进制数的转换方法

若十进制数23785转为十六进制,则用23785/16=1486余9,1486/16=92余14,92/16=5余12,5/16=0余5,十六进制中,10对应为a、11对应为b、。。。。。。、15对应为f,再将余数倒写为5ce9,则十进制23785=十六进制5ce9 十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方…… 所以,在第N(N从0开始)位上,如果是是数X (X 大于等于0,并且X小于等于15,即:F)表示的大小为X * 16的N次方。 假设有一个十六进数2AF5, 那么如何换算成10进制呢? 用竖式计算:2AF5换算成10进制: 第0位:5 * 16^0 = 5 第1位:F * 16^1 = 240 第2位:A * 16^2 = 2560 第3位:2 * 16^3 = 8192 + ------------------------------------- 10997 直接计算就是: 5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997 二进制的1101转化成十进制 1101(2)=1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13 转化成十进制要从右到左用二进制的每个数去乘以2的相应次方不过次方要从0开始 十进制转二进制:用2辗转相除至结果为1 将余数和最后的1从下向上倒序写就是结果例如302 302/2 = 151 余0 151/2 = 75 余1 75/2 = 37 余1 37/2 = 18 余1 18/2 = 9 余0 9/2 = 4 余1 4/2 = 2 余0 2/2 = 1 余0 1/2 = 0 余1 故二进制为100101110 二进制转八进制 在把二进制数转换为八进制表示形式时,对每三位二进制位进行分组,应该从小数点所在位置分别向左向右划分,若整数部分倍数不是3的倍数,可以在最高位前面补若干个0;对小数部分,当其位数不是的倍数时,在最低位后补若干个0.然后从左到右把每组的八进制码依次写出,即得转换结果. 你算一下就知道了啊比如110=2^2+2+0=6 二进制转十六进制 要将二进制转为16进制,只需将二进制的位数由右向左每四位一个单位分隔,分的不够的前边补零,用四位数的二进制数来代表一个16进制。转换表如下,括号内为十六进制 0000(0)0001 (1)0010 (2)0011 (3)0100 (4)0101 (5)0110 (6)0111 (7)1000 (8)1001 (9)1010(A)1011 (B)

十进制数与十六进制数的转换方法

一,十进制转换十六进制 若十进制数23785转为十六进制,则用 23785/16=1486余9, 1486/16=92余……14, 92/16=5余………….12, 5/16=0余……………..5,十六进制中,10对应为a、11对应为b、。。。。。。、15对应为f,再将余数倒写为5ce9,则十进制23785=十六进制5ce9 二,十六进制转换十进制 十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方…… 所以,在第N(N从0开始)位上,如果是是数X (X 大于等于0,并且X小于等于15,即:F)表示的大小为X * 16的N次方。 假设有一个十六进数2AF5, 那么如何换算成10进制呢? 用竖式计算:2AF5换算成10进制: 第0位:5 * 16^0 = 5 第1位:F * 16^1 = 240 第2位:A * 16^2 = 2560 第3位:2 * 16^3 = 8192 直接计算就是: 5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997 三,二进制的1101转化成十进制 1101(2)=1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13 转化成十进制要从右到左用二进制的每个数去乘以2的相应次方不过次方要从0开始 十进制转二进制:用2辗转相除至结果为1 将余数和最后的1从下向上倒序写就是结果例如302 302/2 = 151 余0 151/2 = 75 余1 75/2 = 37 余1 37/2 = 18 余1 18/2 = 9 余0 9/2 = 4 余1 4/2 = 2 余0 2/2 = 1 余0 1/2 = 0 余1 故二进制为100101110 四,二进制转八进制 在把二进制数转换为八进制表示形式时,对每三位二进制位进行分组,应该从小数点所在位置分别向左向右划分,若整数部分倍数不是3的倍数,可以在最高位前面补若干个0;对小数部分,当其位数不是的倍数时,在最低位后补若干个0.然后从左到右把每组的八进制码依次写出,即得转换结果. 你算一下就知道了啊比如110=2^2+2+0=6 五,二进制转十六进制 要将二进制转为16进制,只需将二进制的位数由右向左每四位一个单位分隔,分的不够的前边补零,用四位数的二进制数来代表一个16进制。转换表如下,括号内为十六进制 0000(0)0001(1)0010(2)0011(3)0100(4)0101(5) 0110(6)0111(7)1000(8)1001(9)1010(A)1011(B) 1100(C)1101(D)1110(E)1111(F) 例如:10101011划分为1010 1011,根据转换表十六进制为AB

高中信息技术基础进制转换二进制十进制十六进制转换转化

2进制数转换为10进制 (110)2转化为十进制 10进制整理转换成2进制 于是,结果是余数的倒排列,即为: (37)10=(a5a4a3a2a1a0)2=(100101)2 16进制转化成2进制、2进制转化成16进制 (二进制和十六进制的互相转换比较重要。不过这二者的转换却不用计算,每个C,C++程序员都能做到看见二进制数,直接就能转换为十六进制数,反之亦然。) 16进制转化成2进制:每一位十六进制数对应二进制的四位,逐位展开。 二进制数转为十六进制:将二进制数转换成十六进制数是将二进数的整数部分从右向左每四位一组,每一组为一位十六进制整数,不足四位时,在前面补0 (FB)16=(1111 ,1011)2 互转

2进制与16进制的关系: 2进制0000 0001 0010 0011 0100 0101 0110 0111 16进制0 1 2 3 4 5 6 7 2进制1000 1001 1010 1011 1100 1101 1110 1111 16进制8 9 A B C D E F 可以用四位数的二进制数来代表一个16进制,如3A16 转为二进制为: 3为0011,A 为1010,合并起来为00111010。可以将最左边的0去掉得1110102 右要将二进制转为16进制,只需将二进制的位数由右向左每四位一个单位分隔,将各单位对照出16进制的值即可。 16进制数转换为10进制数 假设有一个十六进数 2AF5, 那么如何换算成10进制呢? 用竖式计算: 2AF5换算成10进制: 直接计算就是: 5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997 (别忘了,在上面的计算中,A表示10,而F表示15) 假设有人问你,十进数 1234 为什么是一千二百三十四? 你尽可以给他这么一个算式: 1234 = 1 * 10^3 + 2 * 10^2 + 3 * 10^1 + 4 * 10^0 如十进制数2039 它可以表示为:2*10^3+0*10^2+3*10^1+9*10^0

各种进制之间转换方法

各进制转换方法(转载) 一、计算机中数的表示: 首先,要搞清楚下面3个概念 ?数码:表示数的符号 ?基:数码的个数 ?权:每一位所具有的值 请看例子: 数制十进制二进制八进制十六进制 数码0~9 0~1 0~7 0~15 基10 2 8 16 权10o,101,102,…2o,21,22,…8o,81,82,…16o,161,162,…特点逢十进一逢二进一逢八进一逢十六进一 十进制4956= 4*103+9*102 +5*101+6*10o 二进制1011=1*23+0*22 +1*21+1*2o 八进制4275=4*83+2*82 +7*81+5*8o 十六进制81AE=8*163+1*162 +10*161+14*16o

二、各种进制的转换问题 1.二、八、十六进制转换成十进制 2.十进制转换成二、八、十六进制 3.二进制、八进制的互相转换 4.二进制、十六进制的互相转换 1、二、八、十六进制转换成十进制 方法:数码乘以相应权之和 2、十进制转换成二、八、十六进制 方法:连续除以基,直至商为0,从低到高记录余数

3、二进制、八进制的互相转换 方法: ?二进制转换成八进制:从右向左,每3位一组(不足3位左补0),转换成八进制 ?八进制转换成二进制:用3位二进制数代替每一位八进制数 例(1101001)2=(001,101,001)2=(151)8 例 (246)8=(010,100,110)2=(10100110)2 4、二进制、十六进制的互相转换 方法: ?二进制转换成十六进制:从右向左,每4位一组(不足4位左补0),转换成十六进制 ?十六进制转换成二进制:用4位二进制数代替每一位十六进制数 例(11010101111101)2=(0011,0101,0111,1101)2=(357D)16 例 (4B9E)16=(0100,1011,1001,1110)2=(100101110011110)2 三、各种进制数的运算

进制十进制八进制十六进制转换练习题

进制十进制八进制十六进制转换练习题 TTA standardization office【TTA 5AB- TTAK 08- TTA 2C】

数制及相互转换 进制表示形式R代表任意进制 二进制 B R→十:按权展开求和二→八:三位变一位 八进制O (Q) 十→R:除R取余倒排二→十六:四位变一位 十进制 D 八→二:一位变三位 十六进制H 十六→二:一位变四位 一、单选题 1、下列数据中数值最小的是 A、01110000B B、249D C、125Q D、AAH 2、下列数据中数值最大的是 A、3FH B、64D C、77Q D、111110B 3、下列数据中数值最大的是 A、100H B、100D C、100Q D、100B 4、十进制数24转换成二进制数是 A、11100 B、11010 C、11000 D、10100 5、下列数据中数值最小的是 6、下列数据中数值最大的是 7、下列各数中最大的是 A、 B、D7 H C、214D D、325Q 8、与二进制数100101等值的十进制数是 A、34 B、35 C、36 D、37 9、与十进制数256等值的二进制数是 A、 1000000 B、 C、 D、

10、与十六进制数ACE等值的十进制数是 A、2766 B、 2765 C、2764 D、 2763 11、十六进制数111与八进制数111之和,用八进制数表示为 A、 310 B、 1222 C、 1000 D、 532 12、按某种进制运算2 × 4=12,那么4 × 5为 A、20 B、32 C、24 D、 12 13、若216是某种数制的一个数,它的值与十六进制数8E相等,则该数是()进制数。 A、六 B、八 C、九 D、十 14、下列各数中,属于合法的五进制数的是 A、216 B、 123 C、 354 D、189 15、下列无符号十进制中,能用8位二进制表示的是 A、 257 B、 288 C、 256 D、255 16、无符号二进制数后加上一个0,形成的数是原来的几倍 A、 1 B、 2 C、 1/2 D、4 17、下列数据中数值最大的是 A、(10000)2 B、(17)8 C、(17)10 D、(10)16 18、某学校有1500名学生,若用二进制来编学号,需要多少位来表示。 A、 10 B、 11 C、12 D、13 19、十进制数153转换成二进制数应为 A、 BC、 D、1110110

1十六进制数1000转换成十进制数是____

自测题6 一、选择题(每题2分,共60分) 1、十六进制数1000转换成十进制数是:____ (A) 4096 (B) 01024(C) 2048 (D) 8192 2、内存储器可与微处理器____交换信息 (A) 不能(B) 间接(C) 部分(D) 直接 3、3英寸的软盘,写保护窗口上有一个滑块,将滑块推向一侧,使写保护窗口暴露出来,此时:____ (A) 只能写盘,不能读盘(B) 只能读盘,不能写盘(C) 既可读盘,又可写盘(D) 不能读盘,也不能写盘 4、在微型计算机中,下列设备属于输入设备的是:____ (A) 打印机(B) 显示器(C) 软盘(D) 键盘 5、目前使用的防杀病毒软件的作用是:____ (A) 检查计算机是否感染病毒,清除已感染的任何病毒(B) 杜绝病毒对计算机的侵害(C) 检查计算机是否感染病毒,清除部分已感染的病毒(D) 查出已感染的任何病毒,清除部分已感染的病毒 6、鼠标是微机的一种:____ (A) 输出设备(B) 输入设备(C) 存储设备(D) 运算设备 7、在当前盘当前目录下有一个文件,其内容为: CD\ MD\XYZ\AB\B\C CD XYZ\AB\B 如果首先执行上述文件,并且在执行过程中没有错误发生,则接着执行的下列命令中,不会发生错误的是:____ (A) MD C (B) CD AB(C) RD C (D) RD B

8、为向用户提供方便、快捷的操作,可在根目录下设置可执行文件的搜索路径,这时应使用____命令。 (A) CD(CHDIR)(B) MD(MKDIR)(C) TREE (D) PATH 9、汉字国际码(GB2312-80)规定的汉字编码,每个汉字用:____ (A) 一个字节表示(B) 二个字节表示(C) 三个字节表示(D) 四个字节表示 10、查看磁盘卷标的DOS命令是:____ (A) VER (B) DIR (C) VERIFY (D) VOL 11、检查指定驱动器上文件、目录以及文件分配表(FAT),并产生一个报告,同时还显示未使用的内存数量。该DOS命令是:____ (A) CHDIR (B) CHKDSK (C) DISKCOMP(D) ECHO 12、拷贝一张软盘上的内容到另一张软盘上去的DOS命令是:____ (A) XCOPY (B) DISKCOPY(C) COPY (D) BACKUP 13、DOS文件名对字符的选用是有限制的。下列四个字符中,哪个能够作为一个文件的文件名中的第一个字符:____ (A) .(小数点)(B) $ (C) * (D) 14、C语言中,int类型数据占2个字节,则long类型数据占字节数:____ (A) 1(B) 2(C) 4(D) 8 15、若int类型数据占两个字节,则下列语句的输出为:____ (A) -1,-1 (B) -1,32767(C) -1,32768(D) -1,65535 int k=-1; printf("%d,%u\n",k,k); 16、若有定义:char *p1,*p2,*p3,*p4,ch;则不能正确赋值的程序语句为:____ (A) p1=&ch; scanf("%c", p1); (B) p2=(char*)malloc(1); scanf("%c", p2);(C) p3=getchar(); (D) p4=&ch; *p4=getchar(); 17、与以下定义等价的是:____int *p[4];

十进制转十六进制

一:十进制数转换成二进制数。 随便拿出一个十进制数“39”,(假如你今天买书用了39元)先来把这个39转换成2进制数。 商余数步数 39/2= 19 1 第一步 19/2= 9 1 (这里的19是第一步运算结果的商)第二步 9/2= 4 1 (这里的9是第二步运算结果的商)第三步4/2= 2 0 (这里的4是第三步运算结果的商)第四步2/2= 1 0 (这里的2是第四步运算结果的商)第五步1/2= 0 1 (这里的1是第五步运算结果的商)第六步 那么十进制数39转换成2进制数就是100111. 既39(10)=100111(2) 解析一:1. 当要求把一个10进制数转换成2进制数的时候,就用那个数一直除以2得到商和余数。 2. 用上一步运算结果的商在来除以2,再来得到商和余数。 3. 就这样,一直用上一步的商来除以2,得到商和余数!那么什么时候停止呢? 4. 请看上述运算图,第六步的运算过程是用1除以2.得到的商是0,余数是1. 那么请你记住,记好了啊共2点。A: 当运算到商为“0”的时候,就不用运算了。B:1/2的商为“0”余数为“1”。这个你要死记住,答案并不是0.5!答案就是商为“0”余数为“1”。你不用去思考为什么,记好了就行了! 5. 在上述图中你会清晰的看到每一步运算结果的余数,你倒着把它们写下来就是“100111”了。那么这个就是结果了。 6. 在上述图中符号“/”代表“除以”。 二:十进制数转换成八进制数。 随便拿出一个十进制数“358”,(假如你今天买彩票中了358元)。358是我们现实生活中所用10进制表达出来的一个数值,转换成八进制数十多少? 商余数步数

十进制数转换成十六进制

怎么把EXCEL表格里的一列里的十进制数转换成十六进制? DEC2HEX 将十进制数转换为十六进制数。 如果该函数不可用,并返回错误值#NAME?,请安装并加载“分析工具库”加载宏。 操作方法 在“工具”菜单上,单击“加载宏”。 在“可用加载宏”列表中,选中“分析工具库”框,再单击“确定”。 如果必要,请遵循安装程序中的指示。 语法 DEC2HEX(number,places) Number 待转换的十进制数。如果参数number 是负数,则省略places。函数DEC2HEX 返回10 位十六进制数(40 位二进制数),最高位为符号位,其余39 位是数字位。负数用二进制数的补码表示。 Places 所要使用的字符数,如果省略places,函数DEC2HEX 用能表示此数的最少字符来表示。当需要在返回的数值前置零时places 尤其有用。 说明: 如果number < -549、755、813、888 或者number > 549、755、813、887,则函数DEC2HEX 返回错误值#NUM!。 如果参数number 为非数值型,函数DEC2HEX 将返回错误值#VALUE!。 如果函数DEC2HEX 需要比places 指定的更多的位数,将返回错误值#NUM!。 如果places 不是整数,将截尾取整。 如果places 为非数值型,函数DEC2HEX 将返回错误值#VALUE!。 如果places 为负值,函数DEC2HEX 将返回错误值#NUM!。 示例 如果您将示例复制到空白工作表中,可能会更易于理解该示例。 操作方法 创建空白工作簿或工作表。 请在“帮助”主题中选取示例。不要选取行或列标题。 从帮助中选取示例。 按Ctrl+C。 在工作表中,选中单元格A1,再按Ctrl+V。 若要在查看结果和查看返回结果的公式之间切换,请按Ctrl+`(重音符),或在“工具”菜单上,指向“公式审核”,再单击“公式审核模式”。 公式说明(结果) =DEC2HEX(100, 4) 将十进制数100 转换为4 个字符的十六进制数(0064) =DEC2HEX(-54) 将十进制数-54 转换为十六进制数(FFFFFFFFCA)

十六进制数转换成十进制数C语言

十六进制数转换成十进制数C语言 程序代码: #include #include #include /*求字符串长度函数*/ int strlengh(char *s) { int i; for(i=0;s[i]!='\0';i++); return i; } /*16进制转10进制函数*/ double tran(char *s) { int len=strlengh(s);/*求输入的字符串的长度*/ int ss[100] ;/*用于存放对字符的转换如f:15*/ int i; double n=0.0; /*对字符进行处理,将其每一位转换为整数,之后运算进行处理*/ for(i=0;i

十进制转化十六进制

要把1610转换成16进制,采用什么方法好?为什么有的是先转换成2进制?具体方法和步骤怎么样? 我来帮他解答 2009-11-9 12:56 满意回答 直接转16进制: 1610/16=100……10(A); 100 /16= 6……4; 6 /16= 0……6; 故:1610(10)=64A(16). 先转2进制: 1610/2=805……0; 805 /2=402……1; 402 /2=201……0; 201 /2=100……1; 100 /2=50 ……0; 50 /2=25 ……0; 25 /2=12 ……1; 12 /2=6 ……0; 6 /2=3 ……0; 3 /2=1 ……1; 1 /2=0 ……1. 1610(10)= 0110 0100 1010(2) 1610(10)= 64A(16) 2进制——16进制转换表; 0--0000 1--0001 2--0010 3--0011 4--0100 5--0101 6--0110 7--0111 8--1000 9--1001 A--1010 B--1011 C--1100 D--1101

E--1110 F—1111 修改中经常接触的是2、10和16进制,基本上需要了解的是2和16互转、10和16互转,其他多了解也没亏2转16:4个2进制位为一个16进制数,2进制1111为16进制F,2进制中千位的1=8,百位的1=4,十位的1=2,个位的1=1,将各个位的数作相应转换再相加,的到的数就是10进制数0-15,可轻松转换成16进制。如01011100,可看成是两组2进制数0101和1100,则这个数就是16进制的5C。10转16:100以内一点的10转16心算比较快,复杂的用“计算器”算了。10转16用传统的计算方式可以了,就是大于15小于256的10进制数除以16为的值为十位的16进制数,其余数为个位的16进制数,没余数则个位为0。如61的16进制是3D,61除以16得3余13,3作十位数,13转成D为各位数。字串1 16转10:用相反的道理,将十位数乘以16加上个位数。如5A,将5乘以16得80,加上A的10进制10,结果是90。字串2 其实这些都是计算机基础,基本上学过计算机的都会学到这些,但留意一下,他们对于修改是十分有用的,平时多多留意,多多试验,你也会成为修改高手。字串4 个人推荐使用:WINDOWS中点击“开始”--”程序“--“附件”--“计算器”,按“查看”再选“科学型”,就可以方便的进行各进制的转换了(如:你要转换10进制90000000为16进制,点“十进制”,输入90000000,再点一下“16进制”,就会看到55D4A80,转换就完成了。其他同理)。字串7 二进制、八进制、十六进制字串3这是一节“前不着村后不着店”的课。不同进制之间的转换纯粹是数学上的计算。不过,你不必担心会有么复杂,无非是乘或除的计算。字串8生活中其实很多地方的计数方法都多少有点不同进制的影子。字串1比如我们最常用的10进制,其实起源于人有10个指头。如果我们的祖先始终没有摆脱手脚不分的境况,我想我们现在一定是在使用20进制。字串1至于二进制……没有袜子称为0只袜子,有一只袜子称为1只袜子,但若有两袜子,则我们常说的是:1双袜子。字串9生活中还有:七进制,比如星期。十六进制,比如小时或“一打”,六十进制,比如分钟或角度…… 字串7 字串3 6.1 为什么需要八进制和十六进制?字串5 编程中,我们常用的还是10进制……必竟C/C++是高级语言。字串2 比如:字串8 int a = 100,b = 99; 字串7不过,由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题。字串1但,二进制数太长了。比如int 类型占用4个字节,32位。比如100,用int类型的二进制数表达将是:字串5 0000 0000 0000 0000 0110 0100 字串1 面对这么长的数进行思考或操作,没有人会喜欢。因此,C,C++ 没有提供在代码直接写二进制数的方法。字串4字串8 用16进制或8进制可以解决这个问题。因为,进制越大,数的表达长度也就越短。不过,为什么偏偏是16或8进制,而不其它的,诸如9或20进制呢?字串4 2、8、16,分别是2的1次方,3次方,4次方。这一点使得三种进制之间可以非常直接地互相转换。8进制或16进制缩短了二进制数,但保持了二进制数的表达特点。在下面的关于进制转换的课程中,你可以发现这一点。字串9 字串4 6.2 二、八、十六进制数转换到十进制数6.2.1 二进制数转换为十进制数二进制数第0位的权值是2的0次方,第1位的权值是2的1次方…… 字串2 所以,设有一个二进制数:0110 0100,转换为10进制为:字串5 下面是竖式:字串5字串9 0110 0100 换算成十进制字串3 字串5第0位0 * 20 = 0 字串5第1位0 * 21 = 0 字串7第2位 1 * 22 = 4 字串1第3位0 * 23 = 0 字串7 第4位0 * 24 = 0 字串4第5位1 * 25 = 32 字串1 第6位1 * 26 = 64 字串6第7位0 * 27 = 0 +

十进制转十六进制

十进制转十六进制 aesopy28843 10级分类:汇编语言被浏览5463次 2013.02.21 师傅们好,我在学PLC编程,想知道怎么样把十进制转换成十六进制,详细点的,比如说15A,18F,这些字母算出来的规律,先谢谢师傅们了 asfadsfe6350 采纳率:47% 11级 2013.02.22 一:十进制数转换成二进制数。随便拿出一个十进制数“39”,(假如你今天买书用了39元)先来把这个39转换成2进制数。商余数步数39/2= 19 1 第一步19/2= 9 1 (这里的19是第一步运算结果的商)第二步9/2= 4 1 (这里的9是第二步运算结果的商)第三步4/2= 2 0 (这里的4是第三步运算结果的商)第四步2/2= 1 0 (这里的2是第四步运算结果的商)第五步1/2= 0 1 (这里的1是第五步运算结果的商)第六步那么十进制数39转换成2进制数就是100111. 既39(10)=100111(2) 解析一:1. 当要求把一个1 0进制数转换成2进制数的时候,就用那个数一直除以2得到商和余数。2. 用上一步运算结果的商在来除以2,再来得到商和余数。 3. 就这样,一直用上一步的商来除以2,得到商和余数!那么什么时候停止呢? 4. 请看上述运算图,第六步的运算过程是用1除以2.得到的商是0,余数是1. 那么请你记住,记好了啊共2点。A: 当运算到商为“0”的时候,就不用运算了。B:1/2的商为“0”余数为“1”。这个你要死记住,答案并不是0.5!答案就是商为“0”余数为“1”。你不用去思考为什么,记好了就行了!5. 在上述图中你会清晰的看到每一步运算结果的余数,你倒着把它们写下来就是“100111”了。那么这个就是结果了。 6. 在上述图中符号“/”代表“除以”。二:十进制数转换成八进制数。随便拿出一个十进制数“358”,(假如你今天买彩票中了358元)。358是我们现实生活中所用10进制表达出来的一个数值,转换成八进制数十多少?商余数步数358/8= 44 6 第一步44/8= 5 4 (这里的44是第一步运算结果的商)第二步5/8= 0 5 (这里的5是第二步运算结果的商)第三步那么十进制数358转换成8进制数就是546。既358(10)=546(8)解析二:1.没什么好说的啦,10进制数转换成2进制数和10进制数转换成8进制数的唯一不一样的地方就是除数变了,除数由“2” 变成了“8”。其余的都一样。所以解析一,你一定要看明白并记好。2.你或许会疑问5/8为什么商为“0” 余数为“5”。因为5不够被8除,那么商就是“0”余数就是“5” 同理1/2商为“0”余数为“1”。不多解释了啊!三:十进制数转换成十六进制数。随便拿出一个十进制数“120”,(假如你今天捡了120元)。120是我们现实生活中所用10进制表达出来的一个数值,转换成十六进制数十多少?商余数步数120/16= 7 8 第一步7/16= 0 7 (这里的7是第一步运算结果的商)第二步@4 那么十进制数120转

进制转换方法总结

信息的编码 再问学生计算机存储信息是不是都采用了二进制数二进制也存在缺点,二进制都用0和1, 而且位数太多, 不易理解, 也易出错。为描述方便常用八、十进制,十六进制数表示二进制数 在微机中,一般在数字的后面,用特定字母表示该数的进制。 十进制:日常生活中最常见的是十进制数,用十个不同的符号来表示:0、1、2、3、4、5、6、7、8、9。 基为:10 运算规则:逢十进一,借一当十 在十进制数的后面加大写字母D以示区别。 二进制:二进制数只有两个代码“0”和“1”,所有的数据都由它们的组合来实现。 基为:2 运算规则:“逢二进一,借一当二”的原则。 在八进制数据后加英文字母“B” 八进制:使用的符号:0、1、2、3、4、5、6、7; 运算规则:逢八进一; 基为:8 在八进制数据后加英文字母“O”, 十六进制:使用的符号:采用0~9和A、B、C、D、E、F六个英文字母一起共十六个代码。 运算规则:逢十六进一

基为:16 在十六进制数据后加英文字母“H”以示分别。 那么二进制数与八进制、十进制,十六进制数是怎么转换的呢 3、协作提高:用讲解法对二进制数与十进制数、十六进制数之间相互的转换的原理及方法(将二进制数字表示的位权值与十进制数字表示的位权值加以对比),叫几位学生到黑板上来做,其它同学在下面草稿纸上做。观察在黑板上做的同学的对错情况,要知道错,错在那里。 由N进制数转换成十进制数的基本做法是,把N进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。 各数制的权 如:十进制中,各位的权为10n-1 二进制中,各位的权为2n-1 十六进制中,各位的权为16n-1 八进制中,各位的权为8n-1 1)、二进制转换为十进制 各数制中整数部分不同位的权为“基的n-1次方(n为数值所在的位数,n的最小值取1)”,小数部分不同位的权值为“基的-n次方,从左向右,每移一位,幂次减1”。 二进制数的基数为2 例()2=()D

进制十进制八进制十六进制转换练习题

数制及相互转换 进制表示形式R代表任意进制 二进制 B R→十:按权展开求和二→八:三位变一位 八进制 O (Q) 十→R:除R取余倒排二→十六:四位变一位 十进制 D 八→二:一位变三位 十六进制 H 十六→二:一位变四位 1、下列数据中数值最小的是 A、01110000B B、249D C、125Q D、AAH 2、下列数据中数值最大的是 A、3FH B、64D C、77Q D、111110B 3、下列数据中数值最大的是 A、100H B、100D C、100Q D、100B 4、十进制数24转换成二进制数是 A、11100 B、11010 C、11000 D、10100 5、下列数据中数值最小的是 6、下列数据中数值最大的是 7、下列各数中最大的是 A、B、D7 H C、214D D、325Q 8、与二进制数100101等值的十进制数是 A、34 B、35 C、36 D、37 9、与十进制数256等值的二进制数是 A、1000000 B、 C、 D、 10、与十六进制数ACE等值的十进制数是 A、2766 B、2765 C、2764 D、2763 11、十六进制数111与八进制数111之和,用八进制数表示为 A、310 B、1222 C、1000 D、532 12、按某种进制运算2 × 4=12,那么4 × 5为 A、20 B、32 C、24 D、12 13、若216是某种数制的一个数,它的值与十六进制数8E相等,则该数是()进制数。 A、六 B、八 C、九 D、十 14、下列各数中,属于合法的五进制数的是 A、216 B、123 C、354 D、189 15、下列无符号十进制中,能用8位二进制表示的是 A、257 B、288 C、256 D、255 16、无符号二进制数后加上一个0,形成的数是原来的几倍?

进制数与十六进制数的转换方法完整版

进制数与十六进制数的 转换方法 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

若十进制数23785转为十六进制,则用23785/16=1486余9,1486/16=92余14, 92/16=5余12, 5/16=0余5,十六进制中,10对应为a、11对应为b、。。。。。。、15对应为f,再将余数倒写为5ce9,则十进制23785=十六进制5ce9 的第0位的为16的,第1位的为16的1次方,第2位的为16的2次方…… 所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。 假设有一个十六进数 2AF5, 那么如何换算成10进制呢? 用: 2AF5换算成10进制: 第0位: 5 * 16^0 = 5 第1位: F * 16^1 = 240 第2位: A * 16^2 = 2560 第3位: 2 * 16^3 = 8192 + ------------------------------------- 10997 直接计算就是: 5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997 二进制的1101转化成十进制 1101(2)=1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13 转化成十进制要从右到左用二进制的每个数去乘以2的相应次方不过次方要从0开始 :用2辗转相除至结果为1 将余数和最后的1从下向上倒序写就是结果例如302 302/2 = 151 余0 151/2 = 75 余1 75/2 = 37 余1 37/2 = 18 余1 18/2 = 9 余0 9/2 = 4 余1 4/2 = 2 余0 2/2 = 1 余0 1/2 = 0 余1 故二进制为 二进制转 在把转换为表示形式时,对每三位二进制位进行分组,应该从小数点所在位置分别向左向右划分,若整数部分倍数不是3的倍数,可以在最高位前面补若干个0;对小数部分,当其位数不是的倍数时,在最后补若干个0.然后从左到右把每组的码依次写出,即得转换结果. 你算一下就知道了啊比如110=1*2^2+1*2^1+0*2^0=6 比如: 1001110分组001 001 110 001=0*2^2+0*2^1+1*2^0=1 001=0*2^2+0*2^1+1*2^0=1 110=1*2^2+1*2^1+0*2^0=6 结果为116 二进制转 要将二进制转为16进制,只需将二进制的位数由右向左每四位一个单位分隔,分的不够的前边补零,用四位数的来代表一个16进制。转换表如下,括号内为

进制转换方法

Hex number system 是计算机中数据的一种表示方法.同我们日常中的十进制表示法不一样.它由0-9,A-F,组成.与10进制的对应关系是: 0-9对应0-9; A-F对应10-15; N进制的数可以用0---(N-1)的数表示超过9的用字母A-F 例如: 10进制的32表示成16进制就是:20 16进制的32表示成10进制就是:3×16^1+2×16^0=50 6.1 为什么需要八进制和十六进制? 编程中,我们常用的还是10进制……毕竟C/C++是高级语言。 比如: int a = 100,b = 99; 不过,由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题。 但,二进制数太长了。比如int 类型占用4个字节,32位。比如100,用int类型的二进制数表达将是:0000 0000 0000 0000 0110 0100 面对这么长的数进行思考或操作,没有人会喜欢。因此,C,C++ 没有提供在代码直接写二进制数的方法。 用16进制或8进制可以解决这个问题。因为,进制越大,数的表达长度也就越短。不过,为什么偏偏是16或8进制,而不其它的,诸如9或20进制呢? 2、8、16,分别是2的1次方,3次方,4次方。这一点使得三种进制之间可以非常直接地互相转换。8进制或16进制缩短了二进制数,但保持了二进制数的表达特点。在下面的关于进制转换的课程中,你可以发现这一点。

6.2 二、八、十六进制数转换到十进制数 6.2.1 二进制数转换为十进制数 二进制数第0位的权值是2的0次方,第1位的权值是2的1次方…… 所以,设有一个二进制数:0110 0100,转换为10进制为: 下面是竖式: 0110 0100 换算成十进制 第0位0 * 2^0 = 0 第1位0 * 2^1 = 0 第2位1 * 2^2 = 4 第3位0 * 2^3 = 0 第4位0 * 2^4 = 0 第5位1 * 2^5 = 32 第6位1 * 2^6 = 64 第7位0 * 2^7 = 0 + --------------------------- 100 用横式计算为: 0 * 2^0 + 0 * 2^1 + 1 * 2^2 + 0 * 2^3 + 0 * 2^4 + 1 * 2^5 + 1 * 2^6 + 0 * 2^7 = 100

c语言 十六进制和十进制间的转换

1.将十六进制转换为十进制. #include #include int main(void){ int convert(int,char *); int i,j; char m[20]; printf("请输入你要转换的数:"); scanf("%s",m); i=0; while(*(m+i)!='\0'){ i++; } j=convert(--i,m); printf("转换为十进制是:%d\n",j); return 0; } int convert(int a,char *p){ int i,j,sum; sum=0; for(i=0;i<=a;i++){ if(*(p+i)<='f'&&*(p+i)>='a') j=(int)(*(p+i))-87; else if(*(p+i)<='F'&&*(p+i)>='A') j=(int)(*(p+i))-55; else j=(int)(*(p+i))-48; sum=sum+pow(16,a-i)*j; } return (sum); }

2.将十进制转换为十六进制. #include int main(void) { int i,a[20],m,m_old; char c; i=0; printf("请输入你要转换的数:"); scanf("%d",&m); m_old=m; while(m!=0){ a[i]=m%16; m/=16; i++; } i--; /*for(;i>=0;i--){ printf("%d ",*(a+i)); }*/ printf("%d转换为十六进制是:",m_old); for(;i>=0;i--){ /*switch(a[i]){ case(10):printf("A");break; case(11):printf("B");break; case(12):printf("C");break; case(13):printf("D");break; case(14):printf("E");break; case(15):printf("F");break; default: printf("%d",a[i]);

二、八、十、十六进制数之间的转换方法

6.2 二、八、十六进制数转换到十进制数 6.2.1 二进制数转换为十进制数 二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……所以,设有一个二进制数:0110 0100,转换为10进制为: 下面是竖式: 0110 0100 换算成十进制 第0位0 * 20 = 0 第1位0 * 21 = 0 第2位1 * 22 = 4 第3位0 * 23 = 0 第4位0 * 24 = 0 第5位1 * 25 = 32 第6位1 * 26 = 64 第7位0 * 27 = 0 + --------------------------- 100 用横式计算为: 0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100 0乘以多少都是0,所以我们也可以直接跳过值为0的位:

1 * 2 2 + 1 * 2 3 + 1 * 25 + 1 * 26 = 100 6.2.2 八进制数转换为十进制数 八进制就是逢8进1。 八进制数采用0~7这八数来表达一个数。 八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方……所以,设有一个八进制数:1507,转换为十进制为: 用竖式表示: 1507换算成十进制。 第0位7 * 80 = 7 第1位0 * 81 = 0 第2位5 * 82 = 320 第3位1 * 83 = 512 + -------------------------- 839 同样,我们也可以用横式直接计算: 7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839 结果是,八进制数1507 转换成十进制数为839 6.2.3 八进制数的表达方法

进制转换

数制是人们利用符号进行计数的科学方法。数制有很多种,在计算机中常用的数制有:十进制,二进制和十六进制。 1.十进制数 人们通常使用的是十进制。它的特点有两个:有0,1,2….9十个基本字符组成,十进制数运算是按“逢十进一”的规则进行的. 在计算机中,除了十进制数外,经常使用的数制还有二进制数和十六进制数.在运算中它们分别遵循的是逢二进一和逢十六进一的法则. 2.二进制数 3.二进制数有两个特点:它由两个基本字符0,1组成,二进制数运算规律是逢二进一。 为区别于其它进制数,二进制数的书写通常在数的右下方注上基数2,或加后面加B表示。 例如:二进制数10110011可以写成(10110011)2,或写成10110011B,对于十进制数可以不加注.计算机中的数据均采用二进制数表示,这是因为二进制数具有以下特点: 1)二进制数中只有两个字符0和1,表示具有两个不同稳定状态的元器件。例如,电路中有,无电流,有电流用1表示,无电流用0表示。类似的还比如电路中电压的高,低,晶体管的导通和截止等。 由于二进制数在使用中位数太长,不容易记忆,所以又提出了十六进制数. 3.十六进制数 十六进制数有两个基本特点:它由十六个字符0~9以及A,B,C,D,E,F组成(它们分别表示十进制数0~15),十六进制数运算规律是逢十六进一, 例如:十六进制数4AC8可写成(4AC8)16,或写成4AC8H。 可见,在数制中,各位数字所表示值的大小不仅与该数字本身的大小有关,还与该数字所在的位置有关,我们称这关系为数的位权。 2.十进制数转换为二进制数,十六进制数(除2/16取余法) 整数转换.一个十进制整数转换为二进制整数通常采用除二取余法,即用2连续除十进制数,直到商为0,逆序排列余数即可得到――简称除二取余法.

相关文档
最新文档