还剩2页未读,继续阅读
文本内容:
C语言中进制知识总结华清远见进制是一种计数的方式,常用的有二进制、八进制、十进制、十六进制任何数据在计算机内存中都是以二进制的形式存放的我对进制的个人理解,二进制数是以2为计算单元,满2进1位的数;八进制数是以8为计算单元,满8进1位的数对于任何一个数字,我们都可以用不同的进制来表示,比如,十进制数12,用二进制表示为1100,用八进制表示为14,用十六进制表示为0xC遵循满进制值进1位,个位数变为0的原理,下面我们以十进制数18为例,对1-18中每一个数值转换各种进制做一个详细说明转二进制:
①小于2,无需进1位,1的二进制值是1
②为二进制值1后面一个数,由于1+1满2,需要进1位,个位数变为0,所以2的二进制值是10
③为二进制值10后面一个数,由于11的个位数1小于2,无需进1位,所以3的二进制值是11
④为二进制值11后面一个数,由于11的个位数1+1满2,需要进1位,而二进制值11的位数1+1又满2,所以位数加1,最终转换结果为100转换思路二进制值11+1-10+1+1个位等于2,进1位,个位数变为0-1+1+0位数满2,进1位-100以此类推,最终十进制数18的二进制转换结果是_____转八进制1-7小于8,无需进1位,1-7的八进制由1-7表示8为八进制值7后面一个数,由于7+1满8,需要进1位,个位数变为0,所以8的八进制值是10以此类推,最终十进制数18的八进制转换结果是22转十六进制十六进制中,个位数1-15分别为123456789abcdefa=
10....f=1516为十六进制值c后面1个数,由于c+1满16,需要进1位,个位数变为0,所以16的十六进制是10最终十进制数18的十六进制转换结果是12详细结果如下图所示C语言把数字前面加0x的数认为是十六进制数虽然以下3个变量的赋值方式不同,但实际赋值结果都是18//二进制类型数字加0b intnumber1=0b_____; //八进制类型数字加0 intnumber2=022; //十六进制类型数字加0x intnumber3=0x12;八进制占位符%o十六进制占位符%x 我们知道,int类型数据占据4个字节,1个字节是8bit并且任何数据在计算机内存中都是以二进制的形式存放的,所以内存需要用32个0或1来描述1个int类型数据由于18的二进制数是_____,我们将一个int类型变量赋值18,本质上是将这个变量的内存地址对应的32个bit位修改为:00000000000000000000000000010010未满31位,后面的数字用0填充___是31而不是32呢,后面会介绍假设我们定义两个变量 intnumber1=12; intnumber2=13;计算机会根据内存地址以由大到小的顺序进行分配内存空间,具体如下图所示二进制转十进制0b1100-0*2的0次方+0*2的1次方+1*2的2次方+1*2的3次方=12十进制转二进制67-64+2+1-2的6次方+2的1次方+2的0次方=0b_____11
①.n位二进制能保存的整数范围公式:2的n次方-1例如,3位的二进制数最大值为111,对应的十进制数字为7;5位的二进制数最大值为11111,对应的十进制数字为2*2*2*2*2-1=31
②.负数的二进制保存规则是最左边的数字是1例如,00000000000000000000000000010010表示正整数,11111111111111111111111111101101表示负数由此,我们就能推测出,int类型能保存的最大整数是2的32-1次方-1= 2147483647___要用32-1,很简单,32个bit中,必须抽1个bit位用来描述这个数字是正数还是负数
1.什么是进制
2.进制的转换规则
3.C语言中int类型进制的声明以及占位符
4.内存存储数据细节
5.进制的转换公式
6.进制的其他知识。