不同进制数之间的转换

一、都有哪些进制?

①二进制:

只有0.1两个数字,以0b开头;

②八进制:

0.1.2.3.4.5.6.7,以0开头;

③十进制:

0.1.2.3.4.5.6.7.8.9

④十六进制:

0.1.2.3.4.5.6.7.8.9.a.b.c.d.e.f;以0x开头;

二、十进制转换

1、十进制转换任意进制:

给目标数字除以进制数,写余数,除到商为0,余数颠倒;

例如:

18转二进制==0b10010;(给18除以2,除到商为0为止,将每一步的余数颠倒就得到了10010)

2、任意进制转十进制:

给数字从右至左编号(编号和数组的索引相同),每个位数乘以进制数的编号次方,所得结果之和,即为要求的进制数.

例如:0b1010101=85

6543210

1×2^6+0×2^5+1×2^4+0×2^3+1×2^2+0×2^1+1×2^0=85

三、任意进制之间的转换

①以二进制位桥梁,利用8421码

1、将每个二进制对应的位商计算一个固定的十进制数

1111

3210

1×2^3+1×2^2+1×2^1+1×2^0=8+4+2+1(8421码)

2、将每个进制对应的分组

     ①二进制2位数组合

     ②八进制3位数组合

     ④十六进制4位数组合

            例如:①将0b1011101转换为8进制

                         0b1011101

                         001 011 101

                         001 021 401

                           1     3      5==135

       ②将0b1011101转换为16进制

                         0101 1101

                          0401 8401

                             5      13==5D

②以十进制为桥梁

x进制==>十进制==>y进制

四、十进制负整数转二进制算法

1、将十进制输出转化陈二进制数,先不管符号;

2、对转化的二进制数逐位取反

3、对取反后的二进制数加1,结果就是十进制负数转化成的二进制数

例如:将-122转化成2进制数

①先把122转换成二进制(因为计算机中存储的是64bit的大小,所以要向前补0)

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0111 1010

②对二进制逐位取反:

1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1000 0101

③取反后加1:

1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1000 0110

五、整数的储存

整数在计算机中是以补码的方式存储的,

1、原码

将一个整数转换成二进制,然后 最高位用来表示符号位(0表示正数,1表示负数,其余位表示数值位)

2、反码

正数的反码和原码一致,负数的反码全部取反,除最高位补码

3、补码

正数的补码和原码一致,负数的补码在反码的基础上末尾+1

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值