搜档网
当前位置:搜档网 › Lua小程序 十六进制字符串和二进制数据间的转换

Lua小程序 十六进制字符串和二进制数据间的转换

Lua小程序 十六进制字符串和二进制数据间的转换
Lua小程序 十六进制字符串和二进制数据间的转换

Lua小程序十六进制字符串和二进制数据间的转换

从十六进制字符串转为二进制数:

1#! /usr/local/bin/lua

2

3

4 --Note: Input hex string file's content must be

5 --a upper case hex string

6

7 --Check the arguments

8if#arg ~= 2 then

9print("Usage:hexstr2bytes.lua \n"); 10os.exit();

11 end

12

13 --Open input hex string file

14 local hexstrfile = io.open(arg[1], "rb");

15if nil == hexstrfile then

16print("Can not open input file!\n");

17os.exit();

18 end

19

20 --Read from the hex string file

21 local hexstr = hexstrfile:read("*a");

22if nil == hexstr then

23print("Can not read hex string from input file!\n");

24 elseif 1 == string.len(hexstr)%2 then

25print("Hex string size must be evel!\n");

26os.exit();

27else

28print("Hex String:", hexstr, "\n");

29 end

30

31 --Close hex string file

32 hexstrfile:close();

33

34 --Open output binary file

35 local bytesfile = io.open(arg[2], "wb");

36if nil == bytesfile then

37print("Can not open output file to write!\n");

38os.exit();

39 end

40

41 --Convert hex string to bytes

42for i = 1, string.len(hexstr) - 1, 2 do

43local doublebytestr = string.sub(hexstr, i, i+1);

44local n = tonumber(doublebytestr, 16);

45if 0 == n then

46bytesfile:write('\00');

47else

48bytesfile:write(string.format("%c", n));

49end

50 end

51

52 --Close output binary file

53 bytesfile:close();

54

55

56

从二进制数转十六进制字符串:

1#! /usr/local/bin/lua

2

3

4 --Check the arguments

5if#arg ~= 2 then

6print("Usage:bytes2hexstr.lua \n"); 7os.exit();

8 end

9

10 --Open input bytes file

11 local bytesfile = io.open(arg[1], "rb");

12if nil == bytesfile then

13print("Can not open input file!\n");

14os.exit();

15 end

16

17 --Read from the bytes file

18 local bytes = bytesfile:read("*a");

19if nil == bytes then

20print("Can not read bytes from input file!\n");

21os.exit();

22 end

23

24 --Close bytes file

25 bytesfile:close();

26

27 --Open output hex string file

28 local hexstrfile = io.open(arg[2], "wb");

29if nil == hexstrfile then

30print("Can not open output file to write!\n");

31os.exit();

32 end

33

34 --Convert bytes to hex string

35for i = 1, string.len(bytes) do

36local charcode = tonumber(string.byte(bytes, i, i));

37local hexstr = string.format("%02X", charcode);

38hexstrfile:write(hexstr);

39 end

40

41 --Close output hex string file

42 hexstrfile:close();

使用Crypto++生成的私钥文件(使用HexEncoder编码的DER格式文件)ch: 30820275020100300D06092A864886F70D01010105000482025F3082025B020100028

181009EEA4CF16CCD0DEF5FAA7B27D872AA0B5CCC286464E5338AE958E076BE764CA9 7C52E89D52329A4BB10DD586031CDD71D0C0581A8A3A41378AED44AA4F25B09C8BF2C 573C882BD82A8EE670C49229C609FB740CC7230FD25411851B3A37AEF91AA6EF3D2EF

2CEC5E03A04257D2C3FDDAAD092696A96B7D0358B1AE339625F9B50201110281802EB

D61ECA7879AAFD0D7C9DE8AF48C5DB1E1B186F07FA5BF71CED89B6531DA4FF763ADD3 EAFFD307341320AEF1DB503088B10ADAA120314C9245C8E6CBFC06C42AE3AFD1612DB A9FC6619E5E08E70BA0CB211D73FD94EA35D3D7BDFCA8AFDC98F5E1277FB1C12ACF09 75D3AA74227B6D23A692DF5B9E6720C5B81578CBBA3D2D024100D1FD16E7CB7898978

5B87DF9E80D071AF95AC47B70FD053A8D03784FF46D6484EEB09B200C3800FBE46C02

A20127BED5CC880F0BAD8FDC9408FAE7A3C634C2C3024100C1BC58C4190843FF1A506 8390F9DA0EFC0857E936FD342007D6A86A23E51369E448D9F33ECFDC03BCBD6D67246

C09B5E9A7DF0F9F78DDB664911B0C1E8119A2702403DC2E89E8723782C90BDCAB2E9E

5B6CBB2C057E8122C4CD4FC4C508FFC98A51809F7B5278B1F87D19D892DF369C0654D

F0DCB9218D668C2B8A2BAD8A85970C1B024100B656EA21F97130F018C425DB59FDC4A 569E70DB7F0C6D4B52ABE9CD4EF5B7EB313581D5E0C3A1E56657EE7F31569FBA4552B

3D277F94924226A73CF2BC4CCD51024100BB5DA6433C896D07C88821107EF658DD201

B7049191213A2001D3EC0A68279CCC6A36EC5DB384F2797CA47F94505A069B247758D

8E6D1A8D30B068BCD26FC7F6

使用hexstr2bytes.lua:

hexstr2bytes.lua ch chout

生成chout:

00000000h: 30 82 02 75 02 01 00 30 0D 06 09 2A 86 48 86 F7 ; 0?u0*咹嗺

00000010h: 0D 01 01 01 05 00 04 82 02 5F 30 82 02 5B 02 01 ; .?_0?[.. 00000020h: 00 02 81 81 00 9E EA 4C F1 6C CD 0D EF 5F AA 7B ; ..亖.炾L駆?颻獅00000030h: 27 D8 72 AA 0B 5C CC 28 64 64 E5 33 8A E9 58 E0 ; '豶?\?dd?婇X? 00000040h: 76 BE 76 4C A9 7C 52 E8 9D 52 32 9A 4B B1 0D D5 ; v緑L﹟R铦R2欿?? 00000050h: 86 03 1C DD 71 D0 C0 58 1A 8A 3A 41 37 8A ED 44 ; ?.輖欣X.?A7婍D 00000060h: AA 4F 25 B0 9C 8B F2 C5 73 C8 82 BD 82 A8 EE 67 ; 狾%皽嬺舠葌絺 g 00000070h: 0C 49 22 9C 60 9F B7 40 CC 72 30 FD 25 41 18 51 ; .I"渀煼@蘲0?A.Q 00000080h: B3 A3 7A EF 91 AA 6E F3 D2 EF 2C EC 5E 03 A0 42 ; 常z飸猲笠?靆.燘00000090h: 57 D2 C3 FD DA AD 09 26 96 A9 6B 7D 03 58 B1 AE ; W颐 ?&柀k}.X碑

000000a0h: 33 96 25 F9 B5 02 01 11 02 81 80 2E BD 61 EC A7 ; 3? .亐.絘歆000000b0h: 87 9A AF D0 D7 C9 DE 8A F4 8C 5D B1 E1 B1 86 F0 ; 嚉 咨迠魧]贬眴? 000000c0h: 7F A5 BF 71 CE D8 9B 65 31 DA 4F F7 63 AD D3 EA ; ?タq呜沞1贠鱟 ? 000000d0h: FF D3 07 34 13 20 AE F1 DB 50 30 88 B1 0A DA A1 ; ?4. 跴0埍.凇000000e0h: 20 31 4C 92 45 C8 E6 CB FC 06 C4 2A E3 AF D1 61 ; 1L扙孺它.?惘補000000f0h: 2D BA 9F C6 61 9E 5E 08 E7 0B A0 CB 21 1D 73 FD ; -簾芶瀆.?犓!.s? 00000100h: 94 EA 35 D3 D7 BD FC A8 AF DC 98 F5 E1 27 7F B1 ; 旉5幼近ǒ軜踽'?? 00000110h: C1 2A CF 09 75 D3 AA 74 22 7B 6D 23 A6 92 DF 5B ; ??u营t"{m# 遊00000120h: 9E 67 20 C5 B8 15 78 CB BA 3D 2D 02 41 00 D1 FD ; 瀏鸥.x撕=-.A.妖

00000130h: 16 E7 CB 78 98 97 85 B8 7D F9 E8 0D 07 1A F9 5A ; .缢x槜吀} 鵝00000140h: C4 7B 70 FD 05 3A 8D 03 78 4F F4 6D 64 84 EE B0 ; 膡p?:?xO鬽d勵? 00000150h: 9B 20 0C 38 00 FB E4 6C 02 A2 01 27 BE D5 CC 88 ; ?.8. l.?'菊虉00000160h: 0F 0B AD 8F DC 94 08 FA E7 A3 C6 34 C2 C3 02 41 ; ..瓘軘. F4旅.A 00000170h: 00 C1 BC 58 C4 19 08 43 FF 1A 50 68 39 0F 9D A0 ; .良X?.C .Ph9.潬00000180h: EF C0 85 7E 93 6F D3 42 00 7D 6A 86 A2 3E 51 36 ; 锢厏搊覤.}j啟>Q6 00000190h: 9E 44 8D 9F 33 EC FD C0 3B CB D6 D6 72 46 C0 9B ; 濪崯3忑?酥謗F罌000001a0h: 5E 9A 7D F0 F9 F7 8D DB 66 49 11 B0 C1 E8 11 9A ; ^殅瘗鲘踗I.傲?? 000001b0h: 27 02 40 3D C2 E8 9E 87 23 78 2C 90 BD CA B2 E9 ; '.@=妈瀲#x,惤什? 000001c0h: E5 B6 CB B2 C0 57 E8 12 2C 4C D4 FC 4C 50 8F FC ; 宥瞬繵?,L渣LP忺000001d0h: 98 A5 18 09 F7 B5 27 8B 1F 87 D1 9D 89 2D F3 69 ; 槬..鞯'?囇潐-骾000001e0h: C0 65 4D F0 DC B9 21 8D 66 8C 2B 8A 2B AD 8A 85 ; 纄M疖?峟??瓓? 000001f0h: 97 0C 1B 02 41 00 B6 56 EA 21 F9 71 30 F0 18 C4 ; ?..A.禫?鵴0?? 00000200h: 25 DB 59 FD C4 A5 69 E7 0D B7 F0 C6 D4 B5 2A BE ; %踄 ?佛圃?? 00000210h: 9C D4 EF 5B 7E B3 13 58 1D 5E 0C 3A 1E 56 65 7E ; 溤颷~?X.^.:.Ve~ 00000220h: E7 F3 15 69 FB A4 55 2B 3D 27 7F 94 92 42 26 A7 ; 珞.i U+='?敀B&? 00000230h: 3C F2 BC 4C CD 51 02 41 00 BB 5D A6 43 3C 89 6D ; <蚣L蚎.A.籡 <塵

00000240h: 07 C8 88 21 10 7E F6 58 DD 20 1B 70 49 19 12 13 ; .葓!.~鯴?.pI

00000250h: A2 00 1D 3E C0 A6 82 79 CC C6 A3 6E C5 DB 38 4F ; ?.>捆倅唐 袍8O 00000260h: 27 97 CA 47 F9 45 05 A0 69 B2 47 75 8D 8E 6D 1A ; '検G鵈.爄睪u崕m. 00000270h: 8D 30 B0 68 BC D2 6F C7 F6 ; ?癶家o泅

使用bytes2hexstr.lua:

bytes2hexstr.lua chout chtmp

生成chtmp:

30820275020100300D06092A864886F70D01010105000482025F3082025B020100028

181009EEA4CF16CCD0DEF5FAA7B27D872AA0B5CCC286464E5338AE958E076BE764CA9 7C52E89D52329A4BB10DD586031CDD71D0C0581A8A3A41378AED44AA4F25B09C8BF2C 573C882BD82A8EE670C49229C609FB740CC7230FD25411851B3A37AEF91AA6EF3D2EF

2CEC5E03A04257D2C3FDDAAD092696A96B7D0358B1AE339625F9B50201110281802EB

D61ECA7879AAFD0D7C9DE8AF48C5DB1E1B186F07FA5BF71CED89B6531DA4FF763ADD3 EAFFD307341320AEF1DB503088B10ADAA120314C9245C8E6CBFC06C42AE3AFD1612DB A9FC6619E5E08E70BA0CB211D73FD94EA35D3D7BDFCA8AFDC98F5E1277FB1C12ACF09 75D3AA74227B6D23A692DF5B9E6720C5B81578CBBA3D2D024100D1FD16E7CB7898978

5B87DF9E80D071AF95AC47B70FD053A8D03784FF46D6484EEB09B200C3800FBE46C02

A20127BED5CC880F0BAD8FDC9408FAE7A3C634C2C3024100C1BC58C4190843FF1A506 8390F9DA0EFC0857E936FD342007D6A86A23E51369E448D9F33ECFDC03BCBD6D67246

C09B5E9A7DF0F9F78DDB664911B0C1E8119A2702403DC2E89E8723782C90BDCAB2E9E

5B6CBB2C057E8122C4CD4FC4C508FFC98A51809F7B5278B1F87D19D892DF369C0654D

F0DCB9218D668C2B8A2BAD8A85970C1B024100B656EA21F97130F018C425DB59FDC4A 569E70DB7F0C6D4B52ABE9CD4EF5B7EB313581D5E0C3A1E56657EE7F31569FBA4552B

3D277F94924226A73CF2BC4CCD51024100BB5DA6433C896D07C88821107EF658DD201

B7049191213A2001D3EC0A68279CCC6A36EC5DB384F2797CA47F94505A069B247758D

8E6D1A8D30B068BCD26FC7F6

二进制、十进制和十六进制及其相互转换的公式

计算机内部是以二进制形式表示数据和进行运算的;计算机内的地址等信号常用十六进制来表示,而人们日常又习惯用十进制来表示数据。这样要表示一个数据就要选择一个适当的数字符号来规定其组合规律,也就是要确定所选用的进位计数制。各种进位制都有一个基本特征数,称为进位制的“基数”。基数表示了进位制所具有的数字符号的个数及进位的规律。下面就以常用的十进制、二进制、八进制和十六进制为例,分别进行叙述。 一.常用的三种计数制 1.十进制(Decimal) 十进制的基数是10,它有10个不同的数字符号,即0、1、2、3、…、9。它的计数规律是“逢十进一”或“借一当十”。处在不同位置的数字符号具有不同的意义,或者说有着不同的“权”。所谓的“权”就是每一位对其基数具有不同的倍数。例如,一个十进制数为 123.45=1×102十2×101十3×100十4×10-1十5×10-2 等号左边为并列表示法.等号右边为多项式表示法,显然这两种表示法表示的数是等价的。 在右边多项式表示法中,1、2、3、4、5被称为系数项,而102、101、100、10-1、10-2等被称为该位的“权”。 一般来说,任何一个十进制数”都可以采用并列表不法表不如下: N10=dn-1d n-2…d1d 0. d-1d-2…d-m 其中,下标n表示整数部分的位数,下标m表示小数部分的位数,d是0~9中的某一个数,即di∈(0,1,…,9)。同样,任意一个十进制数N都可以用多项式表示法表示如下: N10=dn-1×10n-1十…十d1×101十d 0×100十d-1×10-1十…十 d-m×10-m 其中,m、n为正整数,di表示第i位的系数,10i称为该位的权。所以某一位数的大小是由各系数项和其权值的乘积所决定的。 2.二进制(Binary) 二进制的基数是2,它只有两个数字符号,即0和1。计算规律是“逢二进一”或“借一当二”。例如:(101.01)2=1×23十1×22十0×21十1×20十0×2-1十1×2-2 任何一个二进制数N都可以用其多项式来表示: N2=dn-1×2n-1十dn-2×2n-2十…十d1×21十d 0×20十d-1×2-1十d-2×2-2十…十d-m×2-m 式中任何一位数值的大小都可以用该位的系数项di和权值2i的积来确定。 3.十六进制(Hexadecimal) 十六进制的基数为16,它有16个数字符号、即0~9、A~F。其中A、B、C、D、E、F分别代表十进制数的10、11、12、13、14、15。各位之间“逢十六进一”或者“借一当十六”。各位的权值为16i。例如:(2C7.1F)16=2×162十12×161十7×160十1×16-1十15×16-2 二.3种计数制之间的相互转换 对于同一个数,可以采用不同的计数制来表示,其形式也不同。如: (11)10=(1011)2=(B)16 1.R进制转换成十进制的方法 具体的方法是先将其并列形式的数写成其多项式表示形式,然后,经计算后就可得到其十进制的结果。这种方法披称为按权展开法。对于一个任意的R进制数N都可以写成如下形式: N=dn-1 dn-2…d1 d0d -1d-2…d-m =dn-1×Rn-1十…十d1×R1十d 0×R0十d-1×R-1十…十d-m×R-m 其中,R为进位基数,Ri是对应位的权值,di为系数项,特此式求和计算之后,即可以完成R进制数对十进制数的转换。 例如,写出(1101.01)2、(10D)16的十进制数。 (1101.01)2=1×23十1×22十0×21十1×20十0×2-1十0×2-2,

二进制与格雷码转换

在精确定位控制系统中,为了提高控制精度,准确测量控制对象的位置是十分重要的。目前,检测位置的办法有两种:其一是使用位置传感器,测量到的位移量由变送器经A/D转换成数字量送至系统进行进一步处理。此方法精度高,但在多路、长距离位置监控系统中,由于其成本昂贵,安装困难,因此并不实用;其二是采用光电轴角编码器进行精确位置控制。光电轴角编码器根据其刻度方法及信号输出形式,可分为增量式、绝对式以及混合式三种。而绝对式编码器是直接输出数字量的传感器,它是利用自然二进制或循环二进制(格雷码)方式进行光电转换的,编码的设计一般是采用自然二进制码、循环二进制码、二进制补码等。特点是不要计数器,在转轴的任意位置都可读出一个固定的与位置相对应的数字码;抗干扰能力强,没用累积误差;电源切断后位置信息不会丢失,但分辨率是由二进制的位数决定的,根据不同的精度要求,可以选择不同的分辨率即位数。目前有10位、11位、12位、13位、14位或更高位等多种。 其中采用循环二进制编码的绝对式编码器,其输出信号是一种数字排序,不是权重码,每一位没有确定的大小,不能直接进行比较大小和算术运算,也不能直接转换成其他信号,要经过一次码变换,变成自然二进制码,在由上位机读取以实现相应的控制。而在码制变换中有不同的处理方式,本文着重介绍二进制格雷码与自然二进制码的互换。 一、格雷码(又叫循环二进制码或反射二进制码)介绍 在数字系统中只能识别0和1,各种数据要转换为二进制代码才能进行处理,格雷码是一种无权码,采用绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反非常方便。格雷码属于可靠性编码,是一种错误最小化的编码方式,因为,自然二进制码可以直接由数/模转换器转换成模拟信号,但某些情况,例如从十进制的3转换成4时二进制码的每一位都要变,使数字电路产生很大的尖峰电流脉冲。而格雷码则没有这一缺点,它是一种数字排序系统,其中的所有相邻整数在它们的数字表示中只有一个数字不同。它在任意两个相邻的数之间转换时,只有一个数位发生变化。它大大地减少了由一个状态到下一个状态时逻辑的混淆。另外由于最大数与最小数之间也仅一个数不同,故通常又叫格雷反射码或循环码。下表为几种自然二进制码与格雷码的对照表:

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

数制及相互转换 一、单选题 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、下列数据中数值最小的是 A、11110000(二进制) B、249(十进制) C、274(八进制) D、FA(十六进制) 6、下列数据中数值最大的是 A、11101101(二进制) B、235(十进制) C、351(八进制) D、EE(十六进制) 7、下列各数中最大的是 A、11010110B B、D7 H C、214D D、325Q 8、与二进制数100101等值的十进制数是 A、34 B、35 C、36 D、37 9、与十进制数256等值的二进制数是 A、1000000 B、10000000 C、100000000 D、1000000000 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

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

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

二进制转换十六进制

二进制转换十六进制 在Java中字节与十六进制的相互转换主要思想有两点: 1、二进制字节转十六进制时,将字节高位与0xF0做"&"操作,然后再左移4位,得到字节高位的十六进制A;将字节低位与0x0F做"&"操作,得到低位的十六进制B,将两个十六进制数拼装到一块AB就是该字节的十六进制表示。 2、十六进制转二进制字节时,将十六进制字符对应的十进制数字右移动4为,得到字节高位A;将字节低位的十六进制字符对应的十进制数字B与A做"|"运算,即可得到十六进制的二进制字节表示 我测试的Java代码如下: Java代码 public class Test01 { private static String hexStr = "0123456789ABCDEF"; private static String[] binaryArray = {"0000","0001","0010","0011", "0100","0101","0110","0111", "1000","1001","1010","1011", "1100","1101","1110","1111"}; public static void main(String[] args) { String str = "二进制与十六进制互转测试"; System.out.println("源字符串:\n"+str); String hexString = BinaryToHexString(str.getBytes()); System.out.println("转换为十六进制:\n"+hexString); System.out.println("转换为二进制:\n"+bytes2BinaryStr(str.getBytes())); byte [] bArray = HexStringToBinary(hexString); System.out.println("将str的十六进制文件转换为二进制再转为String:\n"+new String(bArray)); } /** * * @paramstr * @return 转换为二进制字符串 */ public static String bytes2BinaryStr(byte[] bArray){ String outStr = ""; intpos = 0;

进制转换计算+ASCII表

一、二进制转化成其他进制 1. 二进制(BINARY)——>八进制(OCTAL) 例子1:将二进制数(10010)2转化成八进制数。 (10010)2=(010 010)2=(2 2)8=(22)8 例子2:将二进制数()2转化为八进制数。 ()2=(0. 101 010)2=(0. 5 2)8=()8 诀窍:因为每三位二进制数对应一位八进制数,所以,以小数点为界,整数位则将二进制数从右向左每3位一隔开,不足3位的在左边用0填补即可;小数位则将二进制数从左向右每3位一隔开,不足3位的在右边用0填补即可。 2. 二进制(BINARY)——>十进制(DECIMAL) 例子1:将二进制数(10010)2转化成十进制数。 (10010)2=(1x24+0x23+0x22+1x21+0x20)10=(16+0+0+2+0)10=(18) 10 例子2:将二进制数()2转化为十进制数。 ()2=(0+1x2-1+0x2-2+1x2-3+0x2-4+1x2-5)10=(0+++++)10=()10 诀窍:以小数点为界,整数位从最后一位(从右向左)开始算,依次列为第0、1、2、3………n,然后将第n位的数(0或1)乘以2的n-1次方,然后相加即可得到整数位的十进制数;小数位则从左向右开始算,依次列为第1、2、3……..n,然后将第n位的数(0或1)乘以2的-n次方,然后相加即可得到小数位的十进制数(按权相加法)。

3. 二进制(BINARY)——>十六进制(HEX) 例子1:将二进制数(10010)2转化成十六进制数。 (10010)2=(0001 0010)2=(1 2)16=(12) 16 例子2:将二进制数()2转化为十六进制数。 ()2=(0. 1010 1000)2=(0. A 8)16=()16 诀窍:因为每四位二进制数对应一位十六进制数,所以,以小数点为界,整数位则将二进制数从右向左每4位一隔开,不足4位的在左边用0填补即可;小数位则将二进制数从左向右每4位一隔开,不足4位的在右边用0填补即可。 (10010)2=(22)8=(18) 10=(12)16 ()2=()8=()10=()16 二、八进制转化成其他进制 1. 八进制(OCTAL)——>二进制(BINARY) 例子1:将八进制数(751)8转换成二进制数。 (751)8=(7 5 1)8=(111 101 001)2=(1)2 例子2:将八进制数()8转换成二进制数。 ()8=(0. 1 6)8=(0. 001 110)2=()2 诀窍:八进制转换成二进制与二进制转换成八进制相反。

进制转换计算

二进制、八进制、十进制与十六进制 一、进制的概念 在计算机语言中常用的进制有二进制、八进制、十进制和十六进制,十进制是最主要的表达形式。 基数:基数是指一种进制中组成的基本数字,也就是不能再进行拆分的数字。二进制是0和1;八进制是0-7;十进制是0-9;十六进制是0-9+A-F(大小写均可)。也可以这样简单记忆,假设是n进制的话,基数就是【0,n-1】的数字,基数的个数和进制值相同,二进制有两个基数,十进制有十个基数,依次类推。 运算规则:运算规则就是进位或错位规则。例如对于二进制来说,该规则是“满二进一,借一当二”;对于十进制来说,该规则是“满十进一,借一当十”。其他进制也是这样。 三、二进制转化成其他进制 1. 二进制(Binary)——>八进制(Octal) 例子:将二进制数(10010)2转化成八进制数。(10010)2=(010 010)2=(2 2)8=(22)8 将二进制数(0.1010)2转化为八进制数。(0.10101)2=(0. 101 010)2=(0. 5 2)8=(0.52)8 诀窍:因为每三位二进制数对应一位八进制数,所以,以小数点为界,整数位则将二进制数从右向左每3位一隔开,不足3位的在左边用0填补即可;小数位则将二进制数从左向右每3位一隔开,不足3位的在右边用0填补即可。 2. 二进制(Binary)——>十进制(Decimal) 例子:将二进制数(10010)2转化成十进制数。 (10010)2=(1x24+0x23+0x22+1x21+0x20)10=(16+0+0+2+0)10=(18) 10将二进制数(0.10101)2转化为十进制数。 (0.10101)2=(0+1x2-1+0x2-2+1x2-3+0x2-4+1x2-5)10=(0+0.5+0.25+0.125+0.0625+0.03125)10=(0.96875)10 诀窍:以小数点为界,整数位从最后一位(从右向左)开始算,依次列为第0、1、2、3………n,然后将第n位的数(0或1)乘以2的n-1次方,然后相加即可得到整数位的十进制数;小数位则从左向右开始算,依次列为第1、2、3……..n,然后将第n位的数(0或1)乘以2的-n次方,然后相加即可得到小数位的十进制数(按权相加法)。 3. 二进制(Binary)——>十六进制(Hex) 例子:将二进制数(10010)2转化成十六进制数。(10010)2=(0001 0010)2=(1 2)16=(12) 16将二进制数(0.1010)2转化为十六进制数。 (0.10101)2=(0. 1010 1000)2=(0. A 8)16=(0.A8)16 诀窍:因为每四位二进制数对应一位十六进制数,所以,以小数点为界,整数位则将二进制数从右向左每4位一隔开,不足4位的在左边用0填补即可;小数位则将二进制数从左向右每4位一隔开,不足4位的在右边用0填补即可。 四、八进制转化成其他进制 1. 八进制(Octal)——>二进制(Binary) 例子1:将八进制数(751)8转换成二进制数。 (751)8=(7 5 1)8=(111 101 001)2=(111101001)2 例子2:将八进制数(0.16)8转换成二进制数。 (0.16)8=(0. 1 6)8=(0. 001 110)2=(0.00111)2 诀窍:八进制转换成二进制与二进制转换成八进制相反。 2. 八进制(Octal)——>十进制(Decimal) 例子1:将八进制数(751)8转换成十进制数。 (751)8=(7x82+5x81+1x80)10=(448+40+1)10=(489)10 例子2:将八进制数(0.16)8转换成十进制数。

十六进制数转换为二进制数程序

十六进制数转换为二进制数程序 程序: CRLF MACRO ;宏定义 PUSH AX ;把AX压入堆栈 PUSH DX ;把DX压入堆栈 MOV AH, 02H ;显示回车 MOV DL, 0DH INT 21H MOV AH, 02H ;显示换行 MOV DL, 0AH INT 21H POP DX ;弹出DX POP AX ;弹出AX ENDM DATA SEGMENT ;数据段 MESS DB 'INPUT HEXNUMBER:', '$' ERROR DB 'INPUT ERROR', 0DH, 0AH, '$' DATA ENDS STACK SEGMENT ;堆栈段 STA DW 32 DUP(?) TOP DW ? STACK ENDS CODE SEGMENT ;代码段 ASSUME CS: CODE, DS: DATA, ES: DATA, SS: STACK START: MOV AX, DATA ;初始化 MOV DS, AX MOV ES, AX MOV SP, TOP LLL: MOV AH, 09H ;显示提示信息 MOV DX, OFFSET MESS ;把MESS的偏移地址给DX INT 21H CRLF XOR DX, DX ;DX清零 MOV BL, 04H ;接收字符个数 GGG: MOV AH, 01H ;接收字符 INT 21H CMP AL, 0DH ;AL-0DH(判断是不是回车) JZ PPP ;是回车,转PPP CMP AL, 20H ;AL-20H(判断是不是空格) JZ PPP ;是空格,转PPP CMP AL, 30H ;AL-30H(判断是不是ASCII码0) JB KKK ;不是,转KKK SUB AL, 30H ;AL=AL-30H(将ASCII码转换成十六进制数) CMP AL, 0AH ;AL-0AH

BCD码2进制转10进制表格工具+说明

BCD码(二─ 十进制码) 在一些数字系统中,如电子计算机和数字式仪器中,往往采用二进制码表示十进制数。通常,把用一组四位二进制码来表示一位十进制数的编码方法称作二─十进制码,亦称BCD 码(Binary Code Decimal)。 4位二进制码共有16种组合,可从中任取10种组合来表示0~9这10个数。根据不同的选取方法,可以编制出很多种BCD码,如8421码,5421码,2421码,5211码和余3码。表B1101列出了这几种BCD码,其中的8421 BCD码最为常用。 由于每一组4位二进制码只代表一位十进制数,因而n位十进制数就得用n组4位二进制码表示。 【例1110】把十进制数369.74编成8421 BCD码。 解: 3 6 9 7 4 ↓↓↓↓↓ 0011 0110 1001 0111 0100 ∴(369.74)10=(0011 0110 1001. 0111 0100)BCD 表B1101 常用BCD编码表

BCD码转化 认识BCD编码 BCD编码是一种数字压缩存储编码,大家都知道一个字节有8个位,而数字0到9最多只需要使用4个位,如果用一个字节来存储一个数字相对就会有一定的浪费,尤其是在传输过程中,由此人们就想出了压缩的办法,于是BCD编码就产生了。 BCD编码将一个字节的8个位拆分成高4位和低4位两个部分,也就是说一个字节能存储两个数字。所以BCD的编码过程就是将数字压缩的过程,将两个字节的数字压缩成一个字节。反之,解码就是把一个字节的数字拆分为两个数字单独存放(大部分的处理都是按字节处理的)。 示例: 编码过程,将数字69进行BCD编码(注:BCD编码低位在前,后面将不再注释)。 1. 将6,9分别转换成二进制表示:6(00000110)9(00001001),大家可以看到,最大的数字9也只要4个位,在传输过程中白白浪费了4个位; 2.将69合并为一个字节,分别取6,9二进制编码的低4位,按照低位在前的原则,将9的低四位放前面6的低四位放后面得出新的字节二进制编码是10010110; 3.完成编码过程,69的BCD编码结果为10010110。 解码过程:将69的BCD码10010110进行解码。 1.将10010110的高4位与低4位拆分开,得到两个二进制数1001和0110; 2.分别将1001和0110的前面补充4位0000得到两个8位的二进制数00001001,00000110; 3.因为编码时低位在前,所以我们将两个二进制数编排顺序为00000110 000010001; 4.将二进制数转换为十进制得出解码结果为69(正确解码)。 PB中如何对BCD码进行解码 大家知道在PB中有二进制类型的变量blob,但要无法按位操作,那么我们如何进行BCD编码的数字进行解码呢? 我想大家都会不约而同的想到ASCII码,没错,就是她。ASCII就是数字和字符在计算机中存储的的值,她在PB中给我们呈现的并不是01组成的二进制数而是十进制数值。 BCD解码需要将一个字节的高4位和低4位进行拆分,那么我们怎么来使用十进制的ASCII编码做到呢? 因为PB不提供位运算所以我们只能自己写函数来做些简单的处理了,那又如何处理呢? 方法一:我们写函数将十进制的ASCII(单字节)转化为二进制的字符串,当然,如此一来你还要写一个将二进制字符串转换为10进制数字的函数,有兴趣的朋友可以尝试一下。 方法二:在我上次写的内容中已经提到了,就是借助十六进制来完成转换。大家仔细研究不难发现十六进制表示等同于将一个字节的内容高4位和低4位分别转换为十进制,如果不信你可以自己验算一下。这样我们就只需要写一个转换函数

二进制,八进制,十进制,十六进制之间的转换算法

二进制,八进制,十进制,十六进制之间的转换算法 一、十进制与二进制之间的转换 (1)十进制转换为二进制,分为整数部分和小数部分 ①整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。下面举例: 例:将十进制的168转换为二进制 得出结果将十进制的168转换为二进制,(10101000)2 分析:第一步,将168除以2,商84,余数为0。 第二步,将商84除以2,商42余数为0。 第三步,将商42除以2,商21余数为0。 第四步,将商21除以2,商10余数为1。 第五步,将商10除以2,商5余数为0。 第六步,将商5除以2,商2余数为1。 第七步,将商2除以2,商1余数为0。 第八步,将商1除以2,商0余数为1。 第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000 (2)小数部分 方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分 为零为止。如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。换句话说就是0舍1入。读数要从前面的整数读到后面的整数,下面举例: 例1:将0.125换算为二进制 得出结果:将0.125换算为二进制(0.001)2 分析:第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25; 第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5; 第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0; 第四步,读数,从第一位读起,读到最后一位,即为0.001。 例2,将0.45转换为二进制(保留到小数点第四位) 大家从上面步骤可以看出,当第五次做乘法时候,得到的结果是0.4,那么小数部分继续乘以2,得0.8,0.8又乘以2的,到1.6这样一直乘下去,最后不可能得到小数部分为零,因此,这个时候只好学习十进制的方法进行四舍五入了,但是二进制只有0和1两个,于是就出现0舍1入。这个也是计算机在转换中会产生误差,但是由于保留位数很多,精度很高,所以可以忽略不计。

进制转换表

Plc课程知识点 一基础知识 1 数字电路基础 2 plc基础 3 编程基础 二编程入门 1逻辑控制程序编制2定时器程序编制3计数器程序编制三编程软件及仿真软件的使用 二、八、十、十六进制数 数值=6×1000+5×100+0×10+5×1=6505

B1011=1×8+0×4+1×2+1×0=K11 H3AE=3×256(16的2次方)+A(10)×16(16的一次方)+E(14)×1(16的零次方)=K942 8421BCD码 用四位二进制数表示十进制数的编码方式称为BCD码又称二—十进制。 最长用的是8421BCD码 十进制数58的二进制数表示和BCD码表示 1.二进制数表示 K58=B111010 58/2=29 0 29/2=14 (1) 14/2=7 0 7/2=3 (1) 3/2=1 (1) 1/2=0 (1) 2 。8421BCD码表示 5 8 0101 1000 K58=01011000BCD 格雷码 在各种控制系统的角度、长度测量和定位控制中,经常使用绝对式旋转编码器作为位置传感器,其算输出的二进制编码为格雷码。 格雷码是一种无权二进制编码,它的特点是任何相邻的吗组之间只有一位数位发生改变,是一种错误很少的可靠性编码。

十进制转化成N进制 口诀:除N取余,逆序排列 K58=B111010 58/2=29 0 29/2=14 (1) 14/2=7 0 7/2=3 (1) 3/2=1 (1) 1/2=0 (1) k8000=H1f40 8000/16=500 0 500/16=31 (4) 31/16=1 (15) 1/16=0 (1) k302=b100101110 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) 十进制转化成二进制 例:K200=B? 200÷2=100.。。。。。。。0 LSD 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 MSD K200=B 1100 1000 十进制转化成16进制 例K8000=H?

二进制如何转十六进制

二进制如何转十六进制 二进制数的书写通常在数的右下方注上基数2,或加后面加B表示。八进制用下标8或数据后面加Q表示。通常在表示时用尾部标志H或下标16以示区别。 1、二进制数、八进制数、十六进制数转十进制数 有一个公式:二进制数、八进制数、十六进制数的各位数字分别乖以各自的基数的(N-1)次方,其和相加之和便是相应的十进制数。个位,N=1;十位,N=2...举例: 110B=1*2的2次方+1*2的1次方+0*2的0次方=0+4+2+0=6D 110Q=1*8的2次方+1*8的1次方+0*8的0次方=64+8+0=72D 110H=1*16的2次方+1*16的1次方+0*16的0次方=256+16+0=272D 2、十进制数转二进制数、八进制数、十六进制数 方法是相同的,即整数部分用除基取余的算法,小数部分用乘基取整的方法,然后将整数与小数部分拼接成一个数作为转换的最后结果。 例:见四级指导16页。 3、二进制数转换成其它数据类型 ⑴二进制转八进制:从小数点位置开始,整数部分向左,小数部分向右,每三位二进制为一组用一位八进制的数字来表示,不足三位的用0补足,就是一个相应八进制数的表示。 010110.001100B=26.14Q 八进制转二进制反之则可。 ⑵二进制转十进制:见1 ⑶二进制转十六进制:从小数点位置开始,整数部分向左,小数部分向右,每四位二进制为一组用一位十六进制的数字来表示,不足四位的用0补足,就是一个相应十六进制数的表示。 00100110.00010100B=26.14H 4、十进制转各进制 要将十进制转为各进制的方式,只需除以各进制的权值,取得其余数,第一次的余数当个位数,第二次余数当十位数,其余依此类推,直到被除数小于权值,最后的被除数当最高位数。 一、十进制转二进制

二进制十进制数转换表

附录B 二进制/十进制数转换表 十进制值二进制值十进制值二进制值 0 0000 0000 23 0001 0111 1 0000 0001 24 0001 1000 2 0000 0010 25 0001 1001 3 0000 0011 26 0001 1010 4 0000 0100 27 0001 1011 5 0000 0101 28 0001 1100 6 0000 0110 29 0001 1101 7 0000 0111 30 0001 1110 8 0000 1000 31 0001 1111 9 0000 1001 32 0010 0000 10 0000 1010 33 0010 0001 11 0000 1011 34 0010 0010 12 0000 1100 35 0010 0011 13 0000 1101 36 0010 0100 14 0000 1110 37 0010 0101 15 0000 1111 38 0010 0110 16 0001 0000 39 0010 0111 17 0001 0001 40 0010 1000 18 0001 0010 41 0010 1001 19 0001 0011 42 0010 1010 20 0001 0100 43 0010 1011 21 0001 0101 44 0010 1100 22 0001 0110 45 0010 1101

312附录B 二进制/十进制数转换表 续表 十进制值二进制值十进制值二进制值 46 0010 1110 76 0100 1100 47 0010 1111 77 0100 1101 48 0011 0000 78 0100 1110 49 0011 0001 79 0100 1111 50 0011 0010 80 0101 0000 51 0011 0011 81 0101 0001 52 0011 0100 82 0101 0010 53 0011 0101 83 0101 0011 54 0011 0110 84 0101 0100 55 0011 0111 85 0101 0101 56 0011 1000 86 0101 0110 57 0011 1001 87 0101 0111 58 0011 1010 88 0101 1000 59 0011 1011 89 0101 1001 60 0011 1100 90 0101 1010 61 0011 1101 91 0101 1011 62 0011 1110 92 0101 1100 63 0011 1111 93 0101 1101 64 0100 0000 94 0101 1110 65 0100 0001 95 0101 1111 66 0100 0010 96 0110 0000 67 0100 0011 97 0110 0001 68 0100 0100 98 0110 0010 69 0100 0101 99 0110 0011 70 0100 0110 100 0110 0100 71 0100 0111 101 0110 0101 72 0100 1000 102 0110 0110 73 0100 1001 103 0110 0111 74 0100 1010 104 0110 1000 75 0100 1011 105 0110 1001

二进制转化为十六进制

《微机原理》实验报告(参考格式,16K纸) 一、实验目的和要求 微机原理是信息类专业的一门选修课,而实验课是为了巩固课堂所学内容,并且能够亲自上机操作。其目的主要是使学生真正了解微机工作原理和低级语言程序设计的相关知识,通过实验训练进一步培养学生分析问题和解决问题的能力,培养学生的创新意识、创新精神和创新能力,为学生今后从事微机系统开发与研究工作打下扎实的基础。 上机操作是本课程的重要组成部分,通过上机操作可以使学生巩固和理解微机工作原理和低级语言程序设计的相关知识,培养学生独立思考、运用所学知识解决实际问题等方面能力的重要环节。本次实验要求为: 1. 掌握86系列汇编语言及指令的格式和寻址方式 2. 掌握86系列汇编语言各类指令的用法。 3. 掌握简单程序、分支程序、循环程序、子程序等的设计方法 4. 在实验的全过程中,培养学生勤奋学习、求真、求实的科学品德,培养学生的动手能力、思维能力、想象能力、表达能力。 二、实验内容和原理 题目设计要求: 在源程序中设置数据段、堆栈段及代码段。在数据段中定义八个字节数据,把这些数据转换成16进制数的ASCll码存在上述数据之后,然后在屏幕上显示这些数据。显示数据用DOS功能2号调用,每个数据用空格分隔。 三、仪器名称及主要规格(包括量程、分度值、精度等)、材料 计算机(配置), Pentiun(R) Dual-Core CPU T4300 @ 2.10GHz 2.09GHz , 1.93GHz 的内存

四、实验步骤 (填题目分析、程序框图) 题目分析: 在源程序中设置数据段、堆栈段及代码段。在数据段中定义八个字节数据,把这些数据转换成16进制数的ASCll码存在上述数据之后,然后在屏幕上显示这些数据。 程序框图:

进制转换方法

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

二进制、十进制、十六进制转换

什么是二进制 在现实生活和记数器中,如果表示数的“器件”只有两种状态,如电灯的“亮”与“灭”,开关的“开”与“关”。一种状态表示数码0,另一种状态表示数码1,1加1应该等于2,因为没有数码2,只能向上一个数位进一,就是采用“满二进一”的原则,这和十进制是采用“满十进一”原则完全相同。 1+1=10,10+1=11,11+1=100,100+1=101, 101+1=110,110+1=111,111+1+=1000,……, 可见二进制的10表示二,100表示四,1000表示八,10000表示十六,……。 二进制同样是“位值制”。同一个数码1,在不同数位上表示的数值是不同的。如11111,从右往左数,第一位的1就是一,第二位的1表示二,第三位的1表示四,第四位的1表示八,第五位的1表示十六。 所谓二进制,也就是计算机运算时用的一种算法。二进制只由一和零组成。 比方说吧,你上一年级时一定听说过“进位筒”&“数位筒”吧!十进制是个位上满十根小棒就捆成一捆,放进十位筒,十位筒满十捆就捆成一大捆,放进百位筒…… 二进制也是一样的道理,个位筒上满2根就向十位进一,十位上满两根就向百位进一,百位上满两根……二进制是世界上第一台计算机上用的算法,最古老的计算机里有一个个灯泡,当运算的时候,比如要表达“一”,第一个灯泡会亮起来。要表达“二”,则第一个灯泡熄灭,第二个灯泡就会亮起来。 二进制就是等于2时就要进位。 0=00000000 1=00000001 2=00000010 3=00000011 4=00000100 5=000 00101 6=00000110 7=00000111 8=00001000 9=00001001 10=00001010 ……即是逢二进一,二进制广泛用于最基础的运算方式,计算机的运行计算基础就是基于二进制来运行。只是用二进制执行运算,用其他进制表现出来。 其实把二进制三位一组分开就是八进制, 四位一组就是十六进制 NAME bin_dec_hex - How to use binary, decimal, and hexadecimal notation. DESCRIPTION Most people use the decimal numbering system. This system uses ten symbols to represent numbers. When those ten symbols are used up, they start all over again and increment the position to the left. The digit 0 is only shown if it is the only symbol in the sequence, or if it is not the first one. If this sounds cryptic to you, this is what I've just said in numbers: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 and so on.

计算机各种进制转换练习题(附答案)

进制转换练习题 1.十进制数1000对应二进制数为______,对应十六进制数为______。 供选择的答案 A:① 10 ② 00 ③ 00 ④ 10 B:① 3C8 ② 3D8 ③ 3E8 ④ 3F8 2.十进制小数为对应的二进制数为______,对应的十六进制数为______。 供选择的答案 A:①②③④ B:①②③④ 3.二进制的1000001相当十进制的______。 ① 62 ② 63 ③ 64 ④ 65 4.十进制的100相当于二进制______,十六进制______。 供选择的答案 A:① 1000000 ② 1100000 ③ 1100100 ④ 1101000 B:①100H ②AOH ③ 64H ④10H 5.八进制的100化为十进制为______,十六进制的100化为十进制为______。 供选择的答案 A:① 80 ② 72 ③ 64 ④ 56 B:① 160 ② 180 ③ 230 ④ 256 6.十六进制数相当十进制数______。 ①②③④ 年可以表示为______ 年。 ① 7C5H ② 6C5H ③ 7D5H ④ 5D5H

8.二进制数将其转换成八进制数为______;将其转换成十六进制数为______。 供选择的答案 A:①②③④ B:①②③④ 9.对于不同数制之间关系的描述,正确的描述为______。 供选择的答案 A:①任意的二进制有限小数,必定也是十进制有限小数。 ②任意的八进制有限小数,未必也是二进制有限小数。 ③任意的十六进制有限小数,不一定是十进制有限小数。 ④任意的十进制有限小数,必然也是八进制有限小数。 10.二进制整数11转换为十进制数为______,二进制小数转换成十进制数为______。 供选择的答案 A:① 1021 ② 1023 ③ 1024 ④ 1027 B:①②③④ 11.十进制的相当十六进制的______,十六进制的相当十进制的______。将二进制的表示为十六进制为______。 供选择的答案 A:①②③④ B:①②③④ C:①② 0.9C1 ③ 0.9C4 ④ 0.9C8 12.十进制算术表达式:3*512+7*64+4*8+5的运算结果,用二进制表示为____。 A. B. C. D. 13.与二进制数等值的十六进制数为____。 A) B)5.51 C) D)

相关主题