在计算机程序中,数值运算是基于二进制的

我们最常见的进制其实就是我们在生活中用的最多的十进制,除了十进制,还有二进制,八进制,十六进制,所谓进制其实就是计数的一种方式,十进制就是逢十进一,其它进制也是类似,二进制就是逢二进一。

二进制的产生是因为早期的电子元件只能表达开关的这两种状态;八进制在对变量进行移位操作等比较底层的程序设计是很有用的并且8进制是用于ACSIC码的;十六进制作为计算机领域一种重要的数制,对计算机理论的描述,计算机硬件电路的设计都是很有益的。比如逻辑电路设计中,即要考虑功能的完备,好要考虑用尽可能少的硬件,十六进制就能起到一些理论分析的作用。比如四位二进制电路,最多就是十六种状态,也就是一种十六进制形式,只有这十六种状态都被用上了或者尽可能多的被用上,硬件资源才发挥了尽可能大的作用。

以下是三种进制的表达方式(十进制在这不做介绍):
二进制一般以0b开头或以B结尾,
八进制一般以0开头,
十六进制一般以0x开头,数字0-9,字母a-f组成。
那么进制之间如何来转换呢?在这里介绍两种方式来做任意进制之间的转换以十进制为桥梁(位权展开法,余数定理)。
具体的推导过程我就不在此展示,下面给几个例子,供大家参考
1:得到下面数据的十进制值:
0b10101
=1*2^4+0*2^3+1*2^2+0*2^1+1*2^0
=16+0+4+0+1
=21
0123
=0*8^3+1*8^2+2*8^1+3*8^0
=0+64+16+3
=83
0x3c
=3*16^1+12*8^0
=48+12
=60

2:得到52的二进制,十进制,十六进制
得到二进制:
52 / 2 = 26   0
26 / 2 = 13   0
13 / 2 = 6    1
6  / 2 = 3    0
3  / 2 = 1    1
1  / 2 = 0    1
0b110100

得到八进制:
52 / 8 = 6 4
6  / 8 = 0      6

064

得到十六进制:
52 / 16  =  3 4
3  / 16  =  0        3

0x34
大家可以发现上面的例子都是正整数,那么负数在计算机中如何表达呢?

原码:原码(true form)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小,

反码:反码是数值存储的一种,多应用于系统环境设置,反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

和补码:在计算机系统中,数值一律用补码来表示和存储,补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

有符号数据表示法的练习
A:已知某数X的原码为10110100B,试求X的补码和反码。

符号位 数值位

原码: 1 0110100

反码: 1 1001011

补码: 1 1001100

B:已知某数X的补码11101110B,试求其原码。

符号位 数值位

补码: 1 1101110

反码: 1 1101101

原码: 1 0010010

如果以上文章有什么问题,欢迎大家指正

计算机基础之二进制与原反补相关推荐

  1. 计算机基础之二进制、十进制、十六进制转换(上)

    计算机基础之二进制.十进制.十六进制转换(上) 计数法与数据转换原理 背景知识:什么是计数法 人类历史上,不同的文明发展都遇到同样的问题,人类记录量时比如中文 二.三.四.五.六--,记录数字所使用的 ...

  2. 二进制计算机基础,计算机基础_03 二进制是什么

    朋友们是否还记得2008年电视上播出的42集电视连续剧<魔幻手机>,在片头部分,有一个画面是这样的: 大家从图中可以看到里面有很多的数字从0-9都有,可能当时朋友们觉得这个好酷炫,并没有更 ...

  3. 一点简单计算机基础知识(二进制、字节、常见DOS命令)

      最近回顾Java基础视频,养成做笔记的习惯,以前一些概念知识,不注重,趁回顾,就记录下来. 本文目录 1.二进制 2.字节 3.常用DOS命令 1.二进制   计算机中的数据不同于人们生活中的数据 ...

  4. 计算机基础三: 二进制减法实现

    在上一章中了解了如何实现二进制加法, 加法是始终从两个加数的最右列向左列进位计算的, 而在减法中没有进位, 只有借位. 253 - 176 = 77 上面的式子我们不难算出来, 但习惯性的思维让我们用 ...

  5. 计算机基础知识二进制转换,计算机基础知识数制转换

    二.数制转换 1.十进制数到二进制数的转换 (1).整数部分  除2取余法(余数为0为止),最后将所取余数按逆序排列. 实例:将十进制数23转换为二进制数 2|    23 2|  11 余数  1 ...

  6. 【计算机基础】二进制和十进制的转换计算

    二进制和十进制的转换非常简单 1.二进制转为十进制 首先讲一下"权重"的概念 数字中某位的权重这样计算:2的(该位所在的位数(从右至左)-1)次方 比如:10中的0的权重为:2^( ...

  7. 计算机基础知识二进制转换,计算机基础二进制转换作业01

    经典,不容错过 一.十进制转换成其他进制 方法:(以转换成二进制数为例,转换成其它进制数同理) 十进制数的整数部分采用"除2取余法",即十进制整数以及此期间产生的商逐次除以基数2, ...

  8. 计算机基础知识对编程的重要性

    码农和架构师的差别在哪里 从题目看文章,大家的第一想法是本篇文章是一篇讲述计算机基础知识和编程之间的关系,但是为什么开篇是这样的呢?当然这样的开篇并没有多大的意义,唯一的目的就是吸引读者而已. 纵观计 ...

  9. Java入门——计算机基础

    文章目录 计算机基础知识 二进制 注意事项: 字节 常用DOS命令 常用命令 计算机基础知识 二进制 计算机中的数据不同于人们生活中的数据,人们生活采用十进制数,而计算机中全部采用二进制数表示,它只包 ...

最新文章

  1. 【 C 】在单链表中插入一个新节点的尝试(二)
  2. Github开源!适合初学者的机器学习和深度学习的资料合集
  3. session 存放对象变量,及遇到的奇怪现象
  4. RabbitMQ之主题(Topic)
  5. 新安装数据库sqlserver2008r2,使用javaweb连接不上问题处理
  6. svn://127.0.0.1/shop
  7. 手机程序开发和测试关注点整理
  8. selenium使用send_keys()方法写中文报错的解决方法
  9. 2. PDO 的使用
  10. armbian 斐讯n1_斐讯N1刷入Armbian(linux)或者电视盒子系统
  11. 论文笔记--用于人体姿势估计的深度双连续网络(Deep Dual Consecutive Network for Human Pose Estimation)
  12. Codeforces 934D - A Determined Cleanup
  13. 喜羊羊与灰太狼java_java swing实现喜羊羊与灰太狼推箱子游戏附带视频开发教程...
  14. 联合查询分组取最新数据
  15. [转贴]Excel操作技巧大全(微软Office技巧大赛获奖作品)
  16. 【高中数学】频率分布表和频率分布直方图
  17. 9个不为人知的黑科技网站,每一个都强大到无敌!
  18. 常用的酒吧经典乐曲106首
  19. 计算机应用基础自主学习,计算机应用基础络自主学习平台使用说明.doc
  20. 浅谈vue的前世今生

热门文章

  1. 一战赚了2000亿,功成身退卸任字节跳动CEO:可怕的张一鸣
  2. 软件测试未来主要发展的5个趋势
  3. 书读百遍,其意自现 --- 意境与语境的融合
  4. php调用python pkl_Python中的Pickle操作(pkl文件解释)
  5. ETC天线分别与OBU和CPC卡交互的区别
  6. Golang:Go 网络包默认值下的陷阱
  7. iphone UINavigationController使用的一些技巧
  8. 计算机一会儿黑屏,电脑一会黑屏一会亮怎么处理?
  9. 电信手机信号测试软件,移动、联通、电信手机信号辐射实测~有图有真相
  10. 基于MATLAB的Kmeans聚类算法的仿真与分析