进制怎么算
编[辑段本一]、数正
高速发在的展现社代会计,机浩浩算荡荡地成为人了们活中不可生缺少的部一,帮分人助们解决通,联络信互,等动各方面问题。的天今我给就家大讲讲与算机计关的“进有转换制”题问 。我们以(5.2256(十)为例讲解一下)进制之间的化问转题。1.
十 -----g&t ;二
给你个十一制,进比:如6,果将它转如成二换进数呢? 制 10进制数 转成换进二制数这,一是连续个除2过的程: 把要换转的数除,2,以得到和余商, 数商继将续除2,以直到为0商最后。所有余数将倒序列,排到数就是转换结得果。 听 起有些来糊涂我?们合结例来子说。明比如要换转为二6制数进 。 把要“转换数,的以2,除到得商和余”。数 那么 : 要转换的是6数 , 6 ÷,得到商23,余是是数0 。“将商继 除以2续,到商为0…直…” 现在商 3是,还不是,所以0续继以除2。 那 就: ÷ 23,得到 是商,1余数是1。 “将继商除续以2直到商为,0…” …现 商是1在,不是0还,以所续继除2。以 那就: 1 ÷ 2 ,得到是商,余数是1 0 “将 继商除以续2,到商为0直……后最将有所数倒序余列排” 极好现在!商经已0是 。 我 们三计次算次得到依余数别是分0、1:、1,所有余数将序排倒列,那是:1就1了! 0 6转换二成进制结果,是10。 1上把面一的段成改用格来表示,表为:则 被除 数 计过程算商 余 数6 6 /23 0 3 3 / 12 1 1 /1 20 1 在(计机中算,用 /÷来 示)表
. 2二 ---&-tg 十;
进二数制转为十进制数 二换制数第0位进权值的2是0次方的第,位的权值1是的12方次…… 所 以,设有一二进制数个:010 01010转换,为10进为: 制 下面竖是:式 0 11 0000 1换算 十成制 &q进otu;^ &q ou; 为t方次 第0位 * 20^0 = 0 1第位 0 2*^ 1=0 第位21 * ^2 = 24 3第 0 *位2 3^ 0 = 第 位4 0* 2^ = 40 第5位1 2*5 =^ 3 2 6第 位 * 12^6 =64 7位 第0 * ^7 2 = +0 --------------------------- 1 0 0横用计算为式 0 * : 2 0^ +0* 2 ^ 1 1+ 2 * 2^ + *12 ^3 + 0* 2 ^ 4 + * 12 ^5 + * 2 1^6 + 0 2 ^* 7 1=0 0 0以多乘都是0,所以我少们可以也接直跳过值0为的: 位 1 * 2 ^ 2 + 1 * 2 ^ 3 1 +* 2 ^ 5+ * 2 1 ^ = 610
0.3 -十--&g-;t 八
1 进0数制换转8进制的方成法和转,换2为进的制法方似类,一唯变:除化由数2成8。变 来看一个例 子如,何将十进数120转换制八成进数制 。用格表示表 : 被除数 算计过程商 数余 120 1208/ 5 0 15 1158/1 7
1 /8 101 10转换2为进8制,果为:结701。
. 4八- -
--gt十
八进 就制逢8是1。进 八进 数采制用0~7这八数 来达一个数。 八表制进数第位的权值为0的0次8方,1位第权值为8的1方次第,位2值为权的28方次… … 所 ,以设一有个八制进数1507,:转为换进制为:十 用式表示: 竖 501换7成算进制十 第。位 7 *08 = 07 第 位 0 *1 81= 0 第 2 5位 8* 2 3=02 第3位 *1 8 =3 51 2+ -------------------------- 839 同样,们我也可用横以式接直算:计 7* 08 +0* 8 1+5 82* 1+* 8 3 8=3 9 果是结,进制八 1507数 转换成进制十数 为893 5. ---十&-g;t十 六 10进制 转换数成1进制的方6,法转和为换2进的制方类法似唯,一变化除:数由变21成6。 同 样是21,转换成16进0制则为: 被除数 计过算程商 余 数 120 210/167 8 77 /6 1 70 20转1为换16进,制果结为78。
:6.十 六---&g-;t 十
61制就是逢进1进61,我但只们0~9有十个这字,所以我数们A,B用C,,D,,F这五个E母来分别表示字1011,12,1,,34,15。字母不区分1小写。 大 六进制十数第0位的权的值16为的次方0,1位的权第为16的值1次,第2位的方值权为6的2次方1… … 所以在,N(第从0N始开)位上如果,是数是 (XX大 于等0于并,X小于等于 且15,:即F)表的示小大 为X *1 6的次N。 方 假设 一有个十进数六 2A5,F那么如何换 算成10制进? 呢用竖 计式算 : 2A5换算F1成进0: 制第 0:位5 *601= 5 1位第: F* 1 6 =12 4 0 第 位2 : A*1 2 =6 562 0第3位 2 : *163= 1982+ ------------------------------------- 1 099 7 直计接算就是 : * 165 + F0* 16 + 1 * A62 +12 163 *= 09197 (别忘了,在上的计算面中A,示表01而F表,示51) 现在可以看 出,所有制进换算1成进0制,键关在于自各的权值不。 假设同人问有你十进数, 2341 为么什 一是二百三十四?你千尽以可给这么他个算一:式 1 32 = 4 1* 13 0+ *21 20 +3* 011 4 *+100
7. 二 ----gt& 八
; 110(01.11)0(二) 整 数分:部从 往后前三每位组,缺位一处0用填补然,按后进制十方法进行化转 ,则:有 010=1 110= 然后3们我将果按从下结往的上序顺书写就:3是,1么那这3个1是二就制进10011的八制进式形 小数 部:分 前往后每三从位一组,缺处用位填0,补后按然十进方法进制行化转 则有:, 1 1=50 后我们将结果部分按从上然往的下顺序书就是:5写,那么个5就是这进二制01.0的1八进制式形 以:(1所101.100)(1二=(3)15.)(八)
8 . --八--&t;g
二 ( 13.)5八( )数部整:从分往后每一位按前进十转化制式方化为三位二进转
制,数缺位处0用充 则有补: -1---g&t1;----gt;&01 0 3- ---&t;11g 后然们将我果按结从下往的上顺书序就是:写1001,1么这那1个101就0是进八31制二的进形式制 说明, 于关十制进转的化式方我里这不就再说了上一,篇文我已章讲经了!解 小数 部:分从前往每一位按十后制转进方式转化化三为二位制数进缺位处用0补, 则有充: --5--&t;g110 然后 我将们结果从按下往的顺序书写就是:101上那,么个1这01是八进制就5二进的形式制 所 以:(31.5)八)=(11001.(011()二)
9 十六.-- --> 二二 --;--> ;十
六 二制进十六进和的互制相换转比较重。不要过这者二转换却不的计用,算个每,C++程C员都序能做看见二到制数进,直接能转换就十为进制六,数之亦反。然 我也一们,只要样学这一小节,完能就到做 。 先我首们看一个二来进制数1:11,1是它少呢? 多你可能 要还样这算:1计* 2 +0 1 2* 1 +1 *22 + 1* 23= 1 *1+ *12 +1* 4+ 1 * 8 = 15。 然,而于由111才14位所,以我必们须接记住它每一位直的值,并权是从高且位往低记位,:、84、21、。,最高即的权位为2值3= ,8然后依次是22 4,21==, 22 =0 1 。记住 8214,对任意一个于4位二的制进数,们都我以可很快出算它应对的0进制值1 下面。出四位二列进数 制xxx 所x有能的值可(间略中部过) 分4仅位的2进制数 速计快方法 算十进值制十 六进值 111 = 81 +4 + 2 + 1 = 15 F 11 10= 8+4 + 2+ 0 14 E = 1101= 8 + 4 + 0 +1 =3 D 1 1100= 8 + +4 0+ 0 =21C 101 =18 4 ++0 + 1 = 1 1 B 101 0=8 + 0 2+ + =010 A 10 0 =18 + +0 0 + =1 99 ... . 000 =1 0+ 0 + +0 = 11 1 00 0 0= + 00 +0+ = 00 0 进制二要数换转为十六制,就进是以位一段,分别4转换十六进制。 为 如 (上行二制为数下面为对应,的六十制进): 1 11 11011 ,01010 110, 001 11110 F D , A 5 ,9 B 过反来,当们看到 FD时我如,何迅速它转换将为进二制呢数 ? 先转换 : F 看到,我F们知需它是道1(可能5还不熟悉你~A这F五数个,)然后15何如842用凑1?应该呢是 8 +4+ 2 + 1,所以位全四为1 111:1 接着转换 。D : 到看D,知它是道3,11如3用何4821呢?凑应该是8:+ 4 + 1 即:,1011 。 所 ,F以转换D为进制数二为,: 11111 10 1由于十六制进换成二转制相当直接进所以,我,们需将要个十进一数制换成转进2制时数,可以先也转成1换进制6
,然再后换成2转制进 比。,十如制数 进123转4换成二制数如,要一直除以果2直接得,到进制数2需,计算要较多数次所。我们以以先除可16,得以1到进制6: 数
被 除数 算过计程商 数 余 1 34 2134/216 7 2 7 7 77716/ 41 3 D) (4 /46 014 结 果6进1为: 0制4x2 然D我们后直接写出0x可42的D二制进式:形 0100 11100 00。 1 其中对映关系 :为 0100 - -4 110 1-- D 000 1--2 同 ,样果如个二进制一数长,很们我要需将它转换10进制成时数除了,前面过学的法方是我,还们可先将以个二这进制转成换16制进然后,再转换1为0制进 。 下举例面一int个型类的二进制数: 0 110111 01110001 110110111 0010111 0 们按我四位一组换转为1进6制 :6 E5DAF B1[编辑本段]二
、数
负数负进的转制稍换有些不微。 同 把负数写先其补码形式为在此(不)议然,再后据根进制转换二它进制的其方法行进。 例: 要求-把9转为八换进制形式则有。 : 9-补的为11码111110。后然位一划三 11-1-->-;7 110 --->-; 6 0 11---->3; 然 我后将们结果从按下上往的顺书写就序是367:那么,637就十进制数是9-的进八形式。 制 充补 : 最有近朋些友了这样提问题“0.的8十六进的制多少?是” 我在想我空间里已经有的了详的讲细,为什么他解要还问样的这题问 那 于是我就 动手了算一下,现发.800.6、、.2... 0...些一字数进制在之间的转化 过 中确实存在程烦麻。 就 如“比08.的六十进”制吧 ! 无 你论么乘以怎61,它的余总数也不尽乘总是余8, 这怎么可啊办我也,辙没 第了天二,请我教我的老师才了知道,来这么简单原啊! 具体法方下:如 0. 81*61=2. 8 .8*016=1.2 8 . .. . . 取 每一结果的个整数部分12既十六进制的C 为如果题 要中精求到小确点后数位那结3果就0.是CCC 如果题中 求要精到小确点后4数位那结果就是.C0CC C 现在OK ,我想我了朋友的也再不因为进会制问的烦题愁! 下了面将十是进数制转换为R负制进公的式: =N(dmd-1m..d.d01-R) = m*(-dR)^mdm+1-*-(R^m-)+.1..+d*(1-R)1+^0d*(-R)^ 150=1*(-)2^+04(*2-)3^+0(-*)2^+1*2(2)^-+11*-()^02 1=001(12- 其)转实成任化意进制都一样的是 初者学最易犯容错误的!!!!!! 犯!错:(6-71)D=(1-115O=(-)69)2 H因原析:分如是果数的正,话上的思面路是正的,确是由但正于和数数负原码、反码、在码转换补的差上别,所以按照正的求数思解路去负对进数求解行不是对的。 确的正
方法是首:将先617-用补码示表出,来然再转后成换八制进十和进制(六码)即补。 可注 :进二补码要制16位用 。确正案答:(-:176)=D(761672)O(fd97=H ) 数十负制转进换八进成制或十六进方法制
如-12)(1=(0 )=8( )1 6 第 一步:换成转进制 二 100 00000 000 01001 第步:补码二,取加反一 注 :取反意时符位号不! 变 111 11111 1111 1000 第三 :步转换成八制是三位一进结:合(71767)8 4 换成十转进制是四六位一合:结ff(f4)6
[编辑1本]段程序C代码(:持负支进)制
#incudl &et;sltid.h&otg ;#i clnud eltamth.&hgt ; amn(i) { l no g,nm,;r wh il(esca f( &quon;tld%l%dq&uto;,&ma;p,n&r)=!OF)E i{f (asb(r)&t; g1& apm;amp!(n