计算机系统概论——第2章 bit、数据类型及其运算
2.1 bit和数据类型
①bit是信息存储的基本单位,也是二进制中的一位,只能取“0”或“1”。n个bit可以表示个不同的状态。
②计算机采用二进制表示方法。
③本章主要介绍整数和浮点数两种数据类型.
2.2 整数数据类型
2.2.1 无符号整数
使用bit来表示无符号整数,例如,所谓无符号就是指整数的二进制表示中的最高位(最左边的那位)不表示整数的正负,也就是说只表示非负数。
k个bit可以表示个无符号整数,表示范围为.
2.2.2 有符号整数
对于有符号整数,一共有三种表示方法,分别是:符号位表示法、反码表示法、补码表示法。
2.2.2.1 符号位表示法
以最高位表示符号,即0表示整数,1表示负数。以n个bit为例,表示范围为:
2.2.2.2 反码表示法
将一个正数的所有bit位取反,得到该正数所对应的负数编码。正数的反码表示是它本身。
以n个bit为例,表示范围为:
2.2.2.3 补码表示法
①正数的反码表示是它本身,负数的补码表示等于它的正数补码表示取反加1。
②负数的补码等于它对应的正数减一后取反。
③负数的补码表示等于:在它对应的正数补码中,在从右往左数的第一个1的左边的所有bit取反后的二进制表示,从右往左的第一个1及其右边的bit保持不变(这种方法最常用)。
只有在补码表示中,正数和对应的负数相加,它们的结果才为0,在其他两种表示方法种都不为0
补码的表示范围为:以n个比特为例,
注意:表示-16。
2.3 二进制与十进制之间的转换
2.2.3.1 二进制数转换为十进制数
2.2.3.2 十进制数转换为二进制数
方法:除二法。每次都除以2,如果余数为1,则在二进制表示的左边添加1,否则添加0。一直重复,直到商为0。
原理:如果一个二进制数是奇数,那么它的最低为一定为1;如果为偶数,则最低位为0。
string transformation(int n)
{
string result="";
while (n)
{
if (n % 2 == 1)
result +