SO技术分享之32
本文介绍二进制数据的相关知识,如定义、取值范围计算、转换为十进制的方法以及一些常见位数的二进制数据的取值范围等。
当前计算机系统大多数都是采用二进制的数据存储方式,单片机系统也是同样,所以了解二进制数据是非常必要的。
1、什么是二进制数?
二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。
二进制数有几个特点:
->由若干位组成,每一位的取值只能为0或1;
->高一位的基数是低一位的2倍。从最低位(最右边的位)到高位(向左)的基数分别为1、2、4、8、16……
2、二进制数转换为十进制的方法
如图 1,二进制数转为十进制的计算方法为:Σ(每位取值*每位基数),即计算每一位的二进制数的取值乘以当前位的基数之和。
3、二进制数取值范围
一个二进制数当它的所有位都为1时为其最大值。
一个N位二进制数取值范围计算的公式为[0,2^N-1],如一个只有1位的二进制数的范围是0到1,一个2位二进制数的取值范围为0到3,一个N位二进制数的范围为0到2^N-1。
4、常见数据类型的取值范围
在单片机开发里,位、字节、字、双字这些数据类型比较常见,对于无符号数来说,这些常见数据类型的取值范围如图 3,即一位二进制数的取值范围为0到1,一个字节的数的取值范围为0到255,一个字的取值范围为0到65535,一个双字的取值范围为0到4294967295。
对于有符号数,因为有负值,所以取值范围正值部分相对于无符号数来说大约减半,负值部分约为负的其正值部分。
本节完,精彩待续。