Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
think-os-zh
提交
81ab02a3
T
think-os-zh
项目概览
OpenDocCN
/
think-os-zh
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
think-os-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
81ab02a3
编写于
10月 13, 2016
作者:
K
Kind Jeff
提交者:
GitHub
10月 13, 2016
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update ch5.md
上级
f5421d26
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
4 addition
and
4 deletion
+4
-4
ch5.md
ch5.md
+4
-4
未找到文件。
ch5.md
浏览文件 @
81ab02a3
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
对于负数,最清晰的表示法使用符号位来表明一个数是正数还是负数。但是还有另一种表示法,叫做“补码”(two's complement),它更加普遍,因为它和硬件配合得更好。
对于负数,最清晰的表示法使用符号位来表明一个数是正数还是负数。但是还有另一种表示法,叫做“补码”(two's complement),它更加普遍,因为它和硬件配合得更好。
为了寻找一个
正数的补码,
`-x`
,需要找到
`x`
的二进制表示,将所有位反转,之后加上1。例如,要表示十进制的
`-5`
,要先从十进制的5开始,如果将其写成8位的形式它是
`0b0000 0101`
。将所有位反转并加以
会得到
`0b1111 1011`
。
为了寻找一个
负数
`-x`
的补码,需要找到
`x`
的二进制表示,将所有位反转,之后加上1。例如,要表示
`-5`
(十进制),要先从5(十进制)开始,如果将其写成8位的形式它是
`0b0000 0101`
。将所有位反转并加1
会得到
`0b1111 1011`
。
在补码中,最左边的位相当于符号位。正数中它是0,负数中它是1。
在补码中,最左边的位相当于符号位。正数中它是0,负数中它是1。
...
@@ -48,7 +48,7 @@ C语言中,这意味着表达式`12 & 10`值为8。
...
@@ -48,7 +48,7 @@ C语言中,这意味着表达式`12 & 10`值为8。
所以表达式
`12 | 10`
值为14。
所以表达式
`12 | 10`
值为14。
最后,
`^`
运算符执行“异或”运算,如果两个操作数
其中有一个为1,而不是全部
为1,结果为1。
最后,
`^`
运算符执行“异或”运算,如果两个操作数
有且仅有一个
为1,结果为1。
```
```
1100
1100
...
@@ -97,9 +97,9 @@ C语言同时提供了移位运算符,`<<`和`>>`,它可以将位向左或
...
@@ -97,9 +97,9 @@ C语言同时提供了移位运算符,`<<`和`>>`,它可以将位向左或
(-1) ** s * c * 2 ** q
(-1) ** s * c * 2 ** q
```
```
这几乎是正确的,但是有一点例外。浮点数通常为规格化的,所以小数点前方有一个数字。例如在10进制中,我们通常使用
`2.998 * 10 ** 8`
而不是
`2998 * 10 ** 5`
,或者任何其它等价的表示。在二进制中,规格化的浮点数
通常
在二进制小数点前有一个数字1。由于这个位置上的数字永远是1,我们可以将其从表示中去掉以节省空间。
这几乎是正确的,但是有一点例外。浮点数通常为规格化的,所以小数点前方有一个数字。例如在10进制中,我们通常使用
`2.998 * 10 ** 8`
而不是
`2998 * 10 ** 5`
,或者任何其它等价的表示。在二进制中,规格化的浮点数
总是
在二进制小数点前有一个数字1。由于这个位置上的数字永远是1,我们可以将其从表示中去掉以节省空间。
例如,十进制的13表示为
`0b1101`
,在浮点数中,它就是
`1.
01
1 * 2 ** 3`
。所以指数为3,系数储存为101(加上20个零)。
例如,十进制的13表示为
`0b1101`
,在浮点数中,它就是
`1.
10
1 * 2 ** 3`
。所以指数为3,系数储存为101(加上20个零)。
这几乎是正确的,但是指数以“偏移”储存。在32位的标准中,偏移是127,所以指数3应该储存为130。
这几乎是正确的,但是指数以“偏移”储存。在32位的标准中,偏移是127,所以指数3应该储存为130。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录