各进制原理

本文主要讲进制数之间的转换与原理

我们平时生活中的主要用到的是十进制数,计算机用的是二进制数,但你们知道什么是十进制数,什么是二进制数,还有其他的八进制数,十六进制数,他们之间又是怎么转换的呢?

首先我们来讲讲这些进制数都是由什么组成的

二进制:由 "0,1" 这两个数组成,如:101011;

八进制:由"0,1,2,3,4,5,6,7" 这八个数值组成,如:53;

十进制:由"0,1,2,3,4,5,6,7,8,9" 这十个数值组成,如:43;

十六进制:由"0,1,2,3,4,5,6,7,8,9,A(10),B(11),C(12),D(13),E(14),F(15)" 这十个数值组成,如:13;

进制之间的转换

二进制转换八进制,以二进制数:10101011 为例 

1)把二进制数分成每3个数值为一节(不足三个数,在左边补0),
 (此位置不足三个数所以补0)10 101 011
   010 101 011

2)把每三位的二进制数按权展开相加
    010                   101                   011
    (0*2² + 1*2¹ + 0*2º)  (1*2² + 0*2¹ + 1*2º)  (0*2² + 1*2¹ + 1*2º)
    (0 + 2 + 0)           (4 + 0 + 1)           (0 + 2 + 1)
    2                     5                     3

3)八进制为:253

八进制转二进制,以八进制数:253 为例

1)对每个八进制的数值通过除2逐级取余数,余数从右至左排放,余数不得三位时在左边补0得到二进制数
	2                           5                       3
	2/2得1,余0                 5/2得1,余1                3/2得1,余1
	1/2得0,余1                 2/2得1,余0                1/2得0,余1
	余数只得两位,左边补0        1/2得0,余1                余数只得两位,左边补0
	010                        101                      011

2)二进制数为 010 101 011,最左侧0可去掉,最终得值 10101011

二进制转换十进制,以二进制数:10101011 为例

1)二进制数按权展开相加即等于十进制数 如:1*2?………1*2³+0*2²+1*2¹+1*2º

得:10101011的十进制数为 171

十进制转换二进制,以十进制数:171 为例

1)对每个十进制的数值通过除2逐级取余数,余数从右至左排放

171/2 得85,余1
85/2 得42,余1
42/2 得21,余0
21/2 得10,余1
…………

得:171的二进制数为 10101011

二进制转换十六进制,以二进制数:10101011 为例 

1)把二进制数分成每四个数值为一节(不足四个数,在左边补0),
   1010 1011

2)把每四位的二进制数按权展开相加
    1010                            1011
    (1*2³ + 0*2² + 1*2¹ + 0*2º)     (1*2³ + 0*2² + 1*2¹ + 1*2º)
    (8 + 0 + 2 + 0)                 (8 + 0 + 2 + 1)
    10(A)                           11(B)

3)十六进制为:AB

十六进制转二进制,以十六进制数:AB 为例

1)对每个十六进制的数值通过除2逐级取余数,余数从右至左排放,余数不得四位时在左边补0得到二进制数
	10(A)                      11(B)
	10/2得5,余0                11/2得5,余1
	5/2得2,余1                 5/2得2,余1
	2/2得1,余0                 2/2得1,余0
	1/2得0,余1                 1/2得0,余1
	1010                       1011

2)二进制数为 10101011

原文地址:https://www.cnblogs.com/mehturt/p/10994192.html

时间: 2024-10-15 00:51:35

各进制原理的相关文章

IP进制站群原理

百度搜索:“inurl:0×00”,会发现全是以八进制.十六进制形式显示的域名(如下图),当点击后,浏览器会自动将这些域名转换为十进制的ip.这种方式在黑帽圈目前挺火爆的,用于做长尾词排名,可以带来可观的流量. IP进制原理:IP地址最常写成加点十进制形式,此种IP通常有4组数字段,并以”.”分隔开,每段数字都在0 到255之间.因为IP同样可以被转换成八进制和十六进制! 域名到IP的转换通常是通过网络软件在后台运行的,用户是不可见的!给出一个域名,你的浏览器就向仪态服务器查询:对于八进制或十六

2进制,10进制,16进制,补码和移位

逢二进一,逢十进一,十六进制 10110101(2) = 128+32+16+4+1 = 181(10) b 5(16) = b*16+5 = 11*16+5 = 181(10) 2进制 int n = 45; System.out.println(Integer.toBinaryString(n)); 计算机的内部(Java)只有2进制数据, 在显示的时候编程语言提供API将2进制转换为10进制显示出来. 计算机只能处理2进制数据, 利用编程语言提供的算法支持了10进制 Java中用于支持2进

HDU1042 N!(大数问题,万进制)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1042 N! Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 89320    Accepted Submission(s): 26376 Problem Description Given an integer N(0 ≤ N ≤ 1

UVA948 Fibonaccimal Base【进制】

The well known Fibonacci sequence is obtained by starting with 0 and 1 and then adding the two last numbers to get the next one. For example the third number in the sequence is 1 (1=1+0), the forth is 2 (2=1+1), the fifth is 3 (3=2+1) and so on. Figu

原理之一,进制转换

原理之一,进制转换 日常生活中采用个数字都是十进制,而计算机采用的是运算更简单.易实现且可靠,为逻辑设计提供了有力途经的二进制,除此之外还有八进制和十六进制作为二进制的缩写. 进制:逢N进一,N是每种进位计数制表示一位数所需要的符号数目为基数. 二进制:逢二进一,借一当二,包含的数字(0.1) 八进制:逢八进一,借八当一,包含(0.1.2.3.4.5.6.7) 十六进制:逢十六当一,以一当十六,包含(0.1.2.3.4.5.6.7.8.9.10(A).11(B).12(C).13(D).14(E

进制转换(各进制的原理)

二进制 一个字节等于8个二进制数 0       0    0    0   0  0  0  0 1       1    1    1   1  1  1  1 128  64  32  16  8  4  2   1 1代表有,0代表没有,从右往左看,八个二进制数分别代表了1,2,4,8,16,32,64,128.这8个二进制组合可以代表1~256当中的任何一个数字(所有都是1的话加起来就是256,所有都是0的话加起来就是0.  1~256当中任何一个数字都可以从中表示出来).这256个字

进制的表现形式及其之间的转换原理和工具

一.不同进制数据的表现形式: 1).二进制的数据表现形式    * 由0,1组成.以0b(b可以大写也可以小写)开头(JDK1.7版本可以表示二进制了),例:0b100: 2).八进制的数据表现形式    * 由0,1,-7组成.以0开头,例:0100: 3).十进制的数据表现形式     * 由0,1,-9组成.整数默认是十进制的 ,例:100: 4).十六进制的数据表现形式    * 由0,1,-9,a,b,c,d,e,f(大小写均可).以0x开头 ,例:0x100: 二.任意进制到十进制的

7. 进制转化的原理

用0开头的表示该整数是八进制表现形式,如:0254:用0x开头的表示该整数是十六进制表现形式,如:0xAC: 对于八进制数0254,要转换成十进制数,就是以各个位上的数值乘以基数8的(n-1)次方,即  0254=4*8^0 + 5*8^1 + 2*8^2=4+40+128=172 所以八进制数0254的十进制表现形式是172. 同理,二进数和十六进数要转化为十进数,都是以各个位置上的数值乘以该进制数基数的(n-1)次方后,相加得到和,即为该进制数的十进制表现形式. 若是要由十进制转化为二进制,

vc 文字转换到机内码,输入汉字和数字, 输出一串16进制码(数字-〉ASII码,汉字—〉国标码)

// 可以用,此程序实现的是是文字转换到机内码.机内码=国标码+8080H,不过学习了. //此程序是利用汉字在机器内输出就是机内码的原理,直接保存的,其实挺简单. //输入一串汉字和数字的混合字符, 经过程序转换, 对应输出一串16进制码(数字-〉ASII码,汉字—〉国标码) CString temp; GetDlgItemText(IDC_EDIT1,m_hanzi);//将汉字保存到变量m_hanzi unsigned char *b=new unsigned char[m_hanzi.G