﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-huangyi5209-文章分类-assembly</title><link>http://www.cppblog.com/huangyi5209/category/16669.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 21 Apr 2011 11:48:00 GMT</lastBuildDate><pubDate>Thu, 21 Apr 2011 11:48:00 GMT</pubDate><ttl>60</ttl><item><title>二进制、八进制、十进制、十六进制之间的互相转换</title><link>http://www.cppblog.com/huangyi5209/articles/144743.html</link><dc:creator>huangyi5209</dc:creator><author>huangyi5209</author><pubDate>Thu, 21 Apr 2011 11:47:00 GMT</pubDate><guid>http://www.cppblog.com/huangyi5209/articles/144743.html</guid><wfw:comment>http://www.cppblog.com/huangyi5209/comments/144743.html</wfw:comment><comments>http://www.cppblog.com/huangyi5209/articles/144743.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/huangyi5209/comments/commentRss/144743.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/huangyi5209/services/trackbacks/144743.html</trackback:ping><description><![CDATA[<p>一)、数制<br>计算机中采用的是二进制，因为二进制具有运算简单，易实现且可靠，为逻辑设计提供了有利的途径、节省设备等优点，为了便于描述，又常用八、十六进制作为二进制的缩写。</p>
<p style="TEXT-INDENT: 2em">2、十进制数与P进制数之间的转换<br>①十进制转换成二进制：十进制整数转换成二进制整数通常采用除2取余法，小数部分乘2取整法。例如，将(30)10转换成二进制数。<br>将(30)10转换成二进制数<br>2| 30 &#8230;.0 ----最右位<br>2 15 &#8230;.1<br>2 7 &#8230;.1<br>2 3 &#8230;.1<br>1 &#8230;.1 ----最左位<br>&#8756; (30)10=（11110)2<br></p>
<p style="TEXT-INDENT: 2em">将(30)10转换成八、十六进制数<br>8| 30 &#8230;&#8230;6 ------最右位<br>3 ------最左位<br>&#8756; (30)10 =(36)8<br></p>
<p style="TEXT-INDENT: 2em"><br>16| 30 &#8230;14(E)----最右位<br>1 ----最左位<br>&#8756; （30)10 =（1E)16<br></p>
<p style="TEXT-INDENT: 2em">3、将P进制数转换为十进制数<br>把一个二进制转换成十进制采用方法：把这个二进制的最后一位乘上20，倒数第二位乘上21，&#8230;&#8230;,一直到最高位乘上2n,然后将各项乘积相加的结果就它的十进制表达式。<br>把二进制11110转换为十进制<br>（11110）2=1*24+1*23+1*22+1*21+0*20=<br>=16+8+4+2+0<br>=（30）10<br></p>
<p style="TEXT-INDENT: 2em">把一个八进制转换成十进制采用方法：把这个八进制的最后一位乘上80，倒数第二位乘上81，&#8230;&#8230;,一直到最高位乘上8n,然后将各项乘积相加的结果就它的十进制表达式。<br>把八进制36转换为十进制<br>（36）8=3*81+6*80=24+6=（30）10<br>把一个十六进制转换成十进制采用方法：把这个十六进制的最后一位乘上160，倒数第二位乘上161，&#8230;&#8230;,一直到最高位乘上16n,然后将各项乘积相加的结果就它的十进制表达式。<br>把十六制1E转换为十进制<br>（1E）16=1*161+14*160=16+14=（30）10<br></p>
<p style="TEXT-INDENT: 2em">3、二进制转换成八进制数<br>(1)二进制数转换成八进制数：对于整数，从低位到高位将二进制数的每三位分为一组，若不够三位时，在高位左面添0，补足三位，然后将每三位二进制数用一位八进制数替换，小数部分从小数点开始，自左向右每三位一组进行转换即可完成。例如：<br>将二进制数1101001转换成八进制数，则<br>(001 101 001)2<br>| | |<br>( 1 5 1)8<br>( 1101001)2=(151)8<br></p>
<p style="TEXT-INDENT: 2em">(2)八进制数转换成二进制数：只要将每位八进制数用三位二进制数替换，即可完成转换，例如，把八进制数(643.503)8，转换成二进制数，则<br>(6 4 3 . 5 0 3)8<br>| | | | | |<br>(110 100 011 . 101 000 011)2<br>(643.503)8=(110100011.101000011)2<br></p>
<p style="TEXT-INDENT: 2em">4、二进制与十六进制之间的转换<br>(1)二进制数转换成十六进制数：由于2的4次方=16，所以依照二进制与八进制的转换方法，将二进制数的每四位用一个十六进制数码来表示，整数部分以小数点为界点从右往左每四位一组转换，小数部分从小数点开始自左向右每四位一组进行转换。<br>(2)十六进制转换成二进制数<br>如将十六进制数转换成二进制数，只要将每一位十六进制数用四位相应的二进制数表示，即可完成转换。<br>例如：将(163.5B)16转换成二进制数，则<br>( 1 6 3 . 5 B )16<br>| | | | |<br>(0001 0110 0011. 0101 1011 )2<br>(163.5B)16=(101100011.01011011)2</p>
<p style="TEXT-INDENT: 2em">附：</p>
<p style="TEXT-INDENT: 2em">可以使用系统自带的计算器数制转换功能进行验证。打开计算器，点击查看菜单，选择科学型。</p>
<img src ="http://www.cppblog.com/huangyi5209/aggbug/144743.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/huangyi5209/" target="_blank">huangyi5209</a> 2011-04-21 19:47 <a href="http://www.cppblog.com/huangyi5209/articles/144743.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>