- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言中进制知识总结
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的二进制转换结果是10010
转八进制:
1-7小于8,无需进1位,1-7的八进制由1-7表示
8为八进制值7后面一个数,由于7+1满8,需要进1位,个位数变为0,所以8的八进制值是10
以此类推,最终十进制数18的八进制转换结果是22
转十六进制:
十六进制中,个位数1-15分别为1 2 3 4 5 6 7 8 9 a b c d e f a 10....f 15
16为十六进制值c后面1个数,由于c+1满16,需要进1位,个位数变为0,所以16的十六进制是10。
最终十进制数18的十六进制转换结果是12
详细结果如下图所示 C语言把数字前面加0x的数认为是十六进制数
虽然以下3个变量的赋值方式不同,但实际赋值结果都是18
//二进制类型数字加0b int number1 0b10010; //八进制类型数字加0 int number2 022; //十六进制类型数字加0x int number3 0x12;
八进制占位符:%o
十六进制占位符:%x?
我们知道,int类型数据占据4个字节,1个字节是8bit。并且任何数据在计算机内存中都是以二进制的形式存放的,所以内存需要用32个0或1来描述1个int类型数据。
由于18的二进制数是10010,我们将一个int类型变量赋值18,本质上是将这个变量的内存地址对应的32个bit位修改为:
0000 0000 0000 0000 0000 0000 0001 0010 未满31位,后面的数字用0填充:为什么是31而不是32呢,后面会介绍
假设我们定义两个变量 int number1 12; ? ?int number2 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次方 0b1000011
①.n位二进制能保存的整数范围公式:2的n次方-1
例如,3位的二进制数最大值为111,对应的十进制数字为7;5位的二进制数最大值为11111,对应的十进制数字为 2*2*2*2*2 -1 31。
.负数的二进制保存规则是最左边的数字是1。例如,0000 0000 0000 0000 0000 0000 0001 0010 表示正整数,1111 1111 1111 1111 1111 1111 1110 1101表示负数
由此,我们就能推测出,int类型能保存的最大整数是2的 32-1 次方-1 ?座机电话号码47。为什么要用32-1,很简单,32个bit中,必须抽1个bit位用来描述这个数字是正数还是负数。
1.什么是进制
2.进制的转换规则
C语言中int类型进制的声明以及占位符
4.内存存储数据细节
进制的转换公式
.进制的其他知识
您可能关注的文档
- Ahcnwza2012考研政治常见疑难知识点精析之哲学(一).doc
- AI操作指南.doc
- acd试题.doc
- android开发常用adapter适配器用法.doc
- ANNY90°平开自动门机产品简述(安尼-徐玉君).doc
- Android模拟器运行速度慢的解决办法.doc
- AdobePresenter使用指南.docx
- APR9600语音录放电路磁带操作模式的应用.doc
- APM行车管理规定试题(站务).doc
- 9年级(上)辅导16期末复习4.doc
- 专题17 中国特色社会主义道路(第01期)-中考历史模拟题分项汇编(全国通用)(原卷版).docx
- 专题17 中国特色社会主义道路(第01期)-中考历史模拟题分项汇编(全国通用)(解析版).docx
- 专题20 宾语从句---三年(2024-2024)中考模拟题英语分项汇编(全国通用).docx
- 专题18 民族团结与祖国统一国防建设与外交成就(第01期)-2024年中考历史模拟题分项汇编(原卷版).doc
- 专题18 民族团结与祖国统一国防建设与外交成就(第02期)-2024年中考历史模拟题分项汇编(全国通用)(解析版).docx
- 专题15 中华人民共和国的成立和巩固(第02期)-中考历史模拟题分项汇编(全国通用)(解析版).docx
- 专题12 中华民族的抗日战争(第01期)-中考历史模拟题分项汇编(原卷版).doc
- 专题12 中华民族的抗日战争(第01期)-中考模拟题历史试题分项汇编(解析版).doc
- 专题12 中华民族的抗日战争(第02期)-中考历史模拟题分项汇编(全国通用)(原卷版).docx
- 专题12 中华民族的抗日战争(第02期)-中考历史模拟题分项汇编(全国通用)(解析版).docx
文档评论(0)