计算机数据表示 源码、反码、补码、移码
2015-10-08 13:33
1296 查看
计算机是一种电子设备,是一种由多个复杂的电子元器件组合而成,而电子元器件只有带电和不带电两种状态,我们将带电状态表示为数值1,不带电的表示为0,这样一来多个元器件的组合体,就可以表示多种状态,也就是说可以表示更多的数据。这样的数据在计算机中也就是常用的二进制。
现实中的数据都有正负之分,整数小数之分,为了便于运算,带符号的机器数可以采用原码、反码、补码、移码的不同的编码方式来表示现实中的数据。
原码:将最高位作为符号位,0代表正,1代表负,其余各位代表数值本身的绝对值。即
+45的原码为 0 0101101
-45的原码为 1 0101101
+0的原码为 0 0000000
-0的原码为 1 0000000
反码:一个数如果为正,则它的反码与原码相同,一个数如果为负,则符号位变成1,其余各位是对原码的取反。即
+45的反码为 0 0101101
-45的反码为 1 1010010
+0的反码为 00000000
-0的反码为 11111111
补码:一个数如果为正,则它的原码、反码、补码相同,一个数为负,则符号位为1,其余各位是对原码取反,然后整个数加1.即
+45的补码为 0 0101101
-45的补码为 第一步:取反码 1 1010010
第二步:+1 1 1010011
+0的补码为 00000000
-0的补码为 00000000(应为1 00000000,但1所在位置超出字长,顾被丢弃)
移码:移码(又叫增码)是符号位取反的补码
+45的移码为 0 0101101
-45的移码为 1 0101101
+0的移码为 0 0000000
-0的移码为 1 0000000
现实中的数据都有正负之分,整数小数之分,为了便于运算,带符号的机器数可以采用原码、反码、补码、移码的不同的编码方式来表示现实中的数据。
原码:将最高位作为符号位,0代表正,1代表负,其余各位代表数值本身的绝对值。即
+45的原码为 0 0101101
-45的原码为 1 0101101
+0的原码为 0 0000000
-0的原码为 1 0000000
反码:一个数如果为正,则它的反码与原码相同,一个数如果为负,则符号位变成1,其余各位是对原码的取反。即
+45的反码为 0 0101101
-45的反码为 1 1010010
+0的反码为 00000000
-0的反码为 11111111
补码:一个数如果为正,则它的原码、反码、补码相同,一个数为负,则符号位为1,其余各位是对原码取反,然后整个数加1.即
+45的补码为 0 0101101
-45的补码为 第一步:取反码 1 1010010
第二步:+1 1 1010011
+0的补码为 00000000
-0的补码为 00000000(应为1 00000000,但1所在位置超出字长,顾被丢弃)
移码:移码(又叫增码)是符号位取反的补码
+45的移码为 0 0101101
-45的移码为 1 0101101
+0的移码为 0 0000000
-0的移码为 1 0000000
相关文章推荐
- 欢迎访问我的博客http://zhangguoli.cn
- 深入浅出谈计算机语言的发展
- HttpClient
- 动手学习TCP:服务端状态变迁
- http://www.tuicool.com/articles/RzUzqei
- Mac OS/Linux命令查询网络端口占用情况
- LINUX 下的网络聊天室项目
- HttpUrlConnection
- Java基础知识强化之网络编程笔记08:TCP之客户端键盘录入服务器控制台输出
- Java基础知识强化之网络编程笔记07:TCP之服务器给客户端一个反馈案例
- apache httpd 禁止目录浏览 及 安全配置
- 一些http 响应码及含义
- KMP算法
- Android网络编程之Socket通信实现简单聊天室
- 基于Triplet loss 函数训练人脸识别深度网络
- TCP应用编程
- HTTP 错误 403.14 - Forbidden
- iOS9网络适配
- Android OkHttp完全解析 是时候来了解OkHttp了
- 网络封包过滤之分层服务提供者(LSP)