二进制,八进制和十进制和十六进制

计算机的组成单位:

计算机中最小的单位是比特bit(包含0和1),最小的存储单位是字节,而一个字节等于八个比特位,1kb等于1024个字节,以此类推向上。。。

首先概述一下各个进制的表示方法:

二进制,由0和1组成,逢二进一,c语言无法直接表示二进制;八进制,由0~7总共八个数字组成,特点是逢八进一,c语言中表示八进制的方法是在数字的开头加0;十进制,逢十进一由0~9组成,正常的数字表示方法;十六进制,逢十六进一,由0~F总共十六个数字加字母组成,c语言中表示该进制的方法为在其前面加上0X。

各进制间转换(15):

二进制~八进制:

15用二进制表示为:0000 1111,而用八进制表示则为017。八进制转换为二进制的方法为:一个八进制对应于3个二进制,也就是说017分别对应于:- - -,- - -。现在,随便选一个八进制数字025为例:(前面的0不考虑在内,只是一个识别符),第一个2对应的二进制为010,第二个5对应的二进制为2**2 + 2**0(对应于1号位和3号位),也就是101,所以,转换为二进制就变成了:0001 0101。反之,二进制转换为八进制,随机选一个数字1101000110,由于一个八进制对应于3个二进制,所以我们先对数字进行相应的分割(从右向左,不足添0):001 101 000 110,各自对应的数字应为:2**0, 2**2+2**0,0,2**2+2**1,于是我们得到的结果为八进制数字就为:01506

二进制~十六进制:

1个十六进制对应于4个二进制,一样来个栗子:十六进制数字0X25F,各自拆开对应:- - - -, - - - -, - - - -,2对应于2**1:0010,5对应于2**2+2**0:0101, F对应于2**3+2**2+2**1+2**0:1111,所以我们得到的二进制结果为:0010 0101 1111。同样,十六进制转换为二进制的操作只需要你过来运行就ok。

八进制~十六进制:

这个转换的话,需要用二进制作为中间的桥梁方便运算。

十进制的运算也十分类似。。。

 

这篇文章写得很详细:https://blog.csdn.net/shanshan1yi/article/details/49518759

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值