二进制、八进制、十六进制.pdf
文本预览下载声明
目 录
前言
一 :为什么需要八进制和十六进制?
二 :二、八、十六进制数转换到十进制数
1 :二进制数转换为十进制数
2 :八进制数转换为十进制数
3 :八进制数的表达方法
4 :八进制数在转义符中的使用
5 :十六进制数转换成十进制数
6 :十六进制数的表达方法
7 :十六进制数在转义符中的使用
三 :十进制数转换到二、八、十六进制数
1 :10进制数转换为2进制数
2 :10进制数转换为8、16进制数
四 :二、十六进制数互相转换
五 :原码、反码、补码
六 :通过调试查看变量的值
七 :小结
本文档使用 看云 构建 - 2 -
前言
前言
不同进制之间的转换纯粹是数学上的计算。不过 ,你不必担心会有么复杂 ,无非是乘或除的计算。
生活中其实很多地方的计数方法都多少有点不同进制的影子。
比如我们最常用的10进制 ,其实起源于人有10个指头。如果我们的祖先始终没有摆脱手脚不分的境况 ,我
想我们现在一定是在使用20进制。
至于二进制……没有袜子称为0只袜子 ,有一只袜子称为1只袜子 ,但若有两袜子 ,则我们常说的是 :1双袜
子。
生活中还有 :七进制 ,比如星期。十六进制 ,比如小时或 “一打” ,六十进制 ,比如分钟或角度……
本文档使用 看云 构建 - 3 -
一 :为什么需要八进制和十六进制?
一 :为什么需要八进制和十六进制?
编程中 ,我们常用的还是10进制……必竟C/C++是高级语言。
比如 :
int a = 100,b = 99;
不过 ,由于数据在计算机中的表示 ,最终以二进制的形式存在 ,所以有时候使用二进制 ,可以更直观地解
决问题。
但 ,二进制数太长了。比如int 类型占用4个字节 ,32位。比如100 ,用int类型的二进制数表达将是 :
0000 0000 0000 0000 0110 0100
面对这么长的数进行思考或操作 ,没有人会喜欢。因此 ,C,C++ 没有提供在代码直接写二进制数的方法。
用16进制或8进制可以解决这个问题。因为 ,进制越大 ,数的表达长度也就越短。不过 ,为什么偏偏是16
或8进制 ,而不其它的 ,诸如9或20进制呢 ?
2、8、16 ,分别是2的1次方 ,3次方 ,4次方。这一点使得三种进制之间可以非常直接地互相转换。8进制
或16进制缩短了二进制数 ,但保持了二进制数的表达特点。在下面的关于进制转换的课程中 ,你可以发现
这一点。
本文档使用 看云 构建 - 4 -
二 :二、八、十六进制数转换到十进制数
二 :二、八、十六进制数转换到十进制数
1 :二进制数转换为十进制数
2 :八进制数转换为十进制数
3 :八进制数的表达方法
4 :八进制数在转义符中的使用
5 :十六进制数转换成十进制数
6 :十六进制数的表达方法
7 :十六进制数在转义符中的使用
本文档使用 看云 构建 - 5 -
1 :二进制数转换为十进制数
1 :二进制数转换为十进制数
二进制数第0位的权值是2的0次方 ,第1位的权值是2的1次方……
所以 ,设有一个二进制数 :0110 0100 ,转换为10进制为 :
下面是竖式 :
用横式计算为 :
0乘以多少都是0 ,所以我们也可以直接跳过值为0的位 :
本文档使用 看云 构建 - 6 -
2 :八进制数转换为十进制数
2 :八进制数转换为十进制数
八进制就是逢8进1。
八进制数采用 0~7这八数来表达一个数。
八进制数第0位的权值为8的0次方 ,第1位权值为8的1次方 ,第2位权值为8的2次方……
所以 ,设有一个八进制数 :1507 ,转换
显示全部