十进制转化十六进制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
要把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 +
字串4 --------------------------- 字串4 100 字串1 字串7 用横式计算为:字串2 0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100 字串5字串4 0乘以多少都是0,所以我们也可以直接跳过值为0的位:字串6 1 * 22 + 1 * 23 + 1 * 25 + 1 * 26 = 100 字串1 字串1 6.2.2 八进制数转换为十进制数八进制就是逢8进1。字串3八进制数采用0~7这八数来表达一个数。字串4 八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方…… 字串8 所以,设有一个八进制数:1507,转换为十进制为:字串7 用竖式表示:字串5 字串3 1507换算成十进制。字串2 字串6 第0位7 * 80 = 7 字串3第1位0 * 81 = 0 字串5 第2位5 * 82 = 320 字串2 第3位1 * 83 = 512 +字串9-------------------------- 字串6 839 字串6 同样,我们也可以用横式直接计算:字串2 7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839 字串7字串5 结果是,八进制数1507 转换成十进制数为839 字串8 字串5 6.2.3 八进制数的表达方法C,C++语言中,如何表达一个八进制数呢?如果这个数是876,我们可以断定它不是八进制数,因为八进制数中不可能出7以上的阿拉伯数字。但如果这个数是123、是567,或12345670,那么它是八进制数还是10进制数,都有可能。字串2 所以,C,C++规定,一个数如果要指明它采用八进制,必须在它前面加上一个0,如:123是十进制,但0123则表示采用八进制。这就是八进制数在C、C++中的表达方法。字串2 由于C和C++都没有提供二进制数的表达方法,所以,这里所学的八进制是我们学习的,CtC++语言的数值表达的第二种进制法。字串5现在,对于同样一个数,比如是100,我们在代码中可以用平常的10进制表达,例如在变量初始化时:字串5 字串2 int a = 100; 字串6我们也可以这样写:字串9 int a = 0144; //0144是八进制的100;一个10进制数如何转成8进制,我们后面会学到。字串6 字串5 千万记住,用八进制表达时,你不能少了最前的那个0。否则计算机会通通当成10进制。不过,有一个地方使用八进制数时,却不能使用加0,那就是我们前面学的用于表达字符的“转义符”表达法。字串4 字串2 6.2.4 八进制数在转义符中的使用我们学过用一个转义符'\'加上一个特殊字母来表示某个字符的方法,如:'\n'表示换行(line),而'\t'表示Tab字符,'\''则表示单引号。今天我们又学习了一种使用转义符的方法:转义符'\'后面接一个八进制数,用于表示ASCII码等于该值的字符。字串6 比如,查一下第5章中的ASCII码表,我们找到问号字符(?)的ASCII值是63,那么我们可以把它转换为八进值:77,然后用'\77'来表示'?'。由于是八进制,所以本应写成'\077',但因为C,C++规定不允许使用斜杠加10进制数来表示字符,所以这里的0可以不写。字串6 事实上我们很少在实际编程中非要用转义符加八进制数来表示一个字符,所以,6.2.4小节的内容,大家仅仅了解就行。字串1字串7 6.2.5 十六进制数转换成十进制数2进制,用两个阿拉伯数字:0、1;字串4 8进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7;字串2 10进制,用十个阿拉伯数字:0到9;字串8 16进制,用十六个阿拉伯数字……等等,阿拉伯人或说是印度人,只发明了10个数字啊?字串1字串1 16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这五个字母来分别表示10,11,12,13,14,15。字母不区分大小写。字串7十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方…… 字串1 所以,在第N(N从0开始)位上,如果是是数X (X 大于等于0,并且X小于等于15,即:F)表示的大小为X * 16的N次方。字串3 假设有一个十六进数2AF5, 那么如何换算成10进制呢?字串7字串7 用竖式计算:字串3字串1 2AF5换算成10进制: 字串3 字串9 第0位:5 * 160 = 5 字串1第1位:F * 161 = 240 字串1 第2位: A * 162 = 2560 字串7 第3位: 2 * 163 = 8192 +字串9 ------------------------------------- 字串3 10997 字串1 直接计算就是:字串9 5 * 160 + F * 161 + A * 162 + 2 * 163 = 10997 字串8 (别忘了,在上面的计算中,A表示10,而F表