`
baicai
  • 浏览: 7137 次
  • 性别: Icon_minigender_2
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

重新做人&&第0周日记——关于二进制

阅读更多

又开学了,除了这学期该学好的功课外,加油把MFC看了,已经看到第5章了,虽然看到第五章还是不知道侯老师要表达啥子,不过没关系,看完一遍,再回过来再看,慢慢来……

每周谢谢学习日记工作计划什么的也好~

看了点汇编的书,开头是二进制数,虽然大一就已经学了,但是已经忘光了,今天又复习了下,转个文章上来:

文章来自黑基的一个文件包

1、在计算机系统中,数值一律用补码来表示(存储)。

主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。

2、补码与原码的转换过程几乎是相同的。

数值的补码表示也分两种情况:
(1)正数的补码:与原码相同。
例如,+9的补码是00001001。
(2)负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。
例如,-7的补码:因为是负数,则符号位为“1”,整个为10000111;其余7位为-7的绝对值+7的原码0000111按位取反为1111000;再加1,所以-7的补码是11111001。


已知一个数的补码,求原码的操作分两种情况:
(1)如果补码的符号位为“0”,表示是一个正数,所以补码就是该数的原码。
(2)如果补码的符号位为“1”,表示是一个负数,求补码的操作可以是:符号位为1,其余各位取反,然后再整个数加1。
例如,已知一个补码为11111001,则原码是10000111(-7):因为符号位为“1”,表示是一个负数,所以该位不变,仍为“1”;其余7位1111001取反后为0000110;再加1,所以是10000111。

在“闲扯原码、反码、补码”文件中,没有提到一个很重要的概念“模”。我在这里稍微介绍一下“模”的概念:

“模”是指一个计量系统的计数范围。如时钟等。计算机也可以看成一个计量机器,它也有一个计量范围,即都存在一个“模”。例如:

  时钟的计量范围是0~11,模=12。
  表示n位的计算机计量范围是0~2(n)-1,模=2(n)。【注:n表示指数】


  “模”实质上是计量器产生“溢出”的量,它的值在计量器上表示不出来,计量器上只能表示出模的余数。任何有模的计量器,均可化减法为加法运算。

例如: 假设当前时针指向10点,而准确时间是6点,调整时间可有以下两种拨法:

   一种是倒拨4小时,即:10-4=6

   另一种是顺拨8小时:10+8=12+6=6

在以12模的系统中,加8和减4效果是一样的,因此凡是减4运算,都可以用加8来代替。

对“模”而言,8和4互为补数。实际上以12模的系统中,11和1,10和2,9和3,7和5,6和6都有这个特性。共同的特点是两者相加等于模。

对于计算机,其概念和方法完全一样。n位计算机,设n=8, 所能表示的最大数是11111111,若再加1称为100000000(9位),但因只有8位,最高位1自然丢失。又回了00000000,所以8位二进制系统的模为2(8)。 在这样的系统中减法问题也可以化成加法问题,只需把减数用相应的补数表示就可以了。

把补数用到计算机对数的处理上,就是补码。

分享到:
评论

相关推荐

    MATLAB——写二进制文件

    本代码主要利用MATLAB工具实现MATLAB——写二进制文件,简单明了,易于理解

    3.3 10进制 & 2进制 & 8进制 & 16进制|理解什么是写代码与Python的基本类型|Python3.8入门 & 进阶 & 原生爬虫实战完全解读

    3.3_ 10进制_&_2进制_&_8进制_&_16进制|理解什么是写代码与Python的基本类型|Python3.8入门_&_

    实例007——将十进制数转换为二进制输出.zip

    了解了这些基础知识后,我们可以创建自己的程序来实现这个转换功能,例如在给定的"实例007——将十进制数转换为二进制输出"项目中,你可能会编写一个用户输入十进制数,程序输出其二进制表示的简单应用程序。...

    十进制转二进制的方法

    二进制转十进制的算法是将二进制数从最后一位开始算起,依次列为第 0、1、2...位,每一位的数(0 或 1)乘以 2 的 n 次方,得到的结果相加就是答案。例如,要将 1101011 转换成十进制数,可以按照以下步骤进行: 第...

    查看二进制文件的常用软件

    二进制文件不同于常见的文本文件,它们包含的是机器可读的0和1数据流,而非人类易读的字符。因此,需要专门的工具来查看和分析这类文件。本文将详细介绍一款常用的二进制文件查看软件——EditPlus。 EditPlus是一款...

    16进制显示转换二进制.vi_16进制转化二进制_

    在描述中提到的“子VI”是指这个程序可能是一个更大型应用程序的一部分,专注于执行特定任务——将16进制转换为二进制。这通常涉及到读取16进制输入,然后通过算法将其转换为相应的二进制表示。在LabVIEW(虚拟仪器...

    BES二进制文件编辑器

    二进制文件是由0和1组成的原始数据格式,通常包含了计算机程序、图像、音频和视频等非文本信息。BES编辑器允许用户直接打开并编辑这些二进制数据,这对于软件开发者、系统管理员以及数据恢复专家来说极其重要。通过...

    BZ二进制查看工具

    二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具二进制工具...

    Multisim八位二进制转三位十进制

    《Multisim八位二进制转三位十进制——深入理解数字电路设计与仿真》 在电子工程和计算机科学领域,数据的表示和转换是基础且关键的一部分。本篇文章将详细探讨如何利用Multisim软件进行八位二进制到三位十进制的...

    16进制转换成二进制

    16进制是一种基于16的数制系统,它使用0到9的数字以及A到F(代表10到15)来表示数值,而二进制则基于2的数制系统,只使用0和1。了解这两种进制之间的转换对于理解计算机内部的工作原理至关重要,因为计算机底层数据...

    C++文件转二进制,二进制转文件

    在C++编程中,将文件转换为二进制和从二进制还原文件是一项常见的任务,特别是在处理图像、音频、视频和其他数据时。这个过程涉及到读取文件内容并将其存储为二进制数据,以及从二进制数据中恢复原始文件。在VS2010...

    bes二进制查看工具

    然而,由于二进制数据是以0和1的形式存储,对于人类来说,理解这些数据的含义显得非常困难。这时,“besnew二进制查看工具”就显得尤为关键。 支持十六进制和八进制查看的功能,使“besnew二进制查看工具”不仅仅...

    浅谈Linux 二进制包安装MySQL的一些问题

    ———————————————- 二进制包是否可以成功的运行,与先前是否先解决rpm包的依赖无关。 也就是说,就算rpm包安装不上,二进制包还是可以安装上去并且正常运行的。 ———————————————- 如果...

    汇编语言作业——进制转换器

    本项目标题为“汇编语言作业——进制转换器”,显然,这是一个使用WIN32汇编语言编写的程序,它的主要功能是实现不同进制之间的转换,如二进制、八进制、十进制和十六进制之间的转换。对于初学者来说,这样的程序...

    浮点数二进制互转小工具

    描述中的“浮点数转二进制,二进制转浮点数”是指该工具支持两种主要功能:一是将十进制的浮点数转换为二进制表示,二是将二进制串转换回浮点数。浮点数的二进制表示遵循IEEE 754标准,这是一个国际标准,定义了...

    1.二进制字符串转十进制数值_labview_二进制转十进制_

    在二进制中,每一位的权重都是2的幂次,例如最右边的一位是2^0,第二位是2^1,以此类推。转换二进制到十进制,就是将每一位的值乘以相应的权重然后相加。 在LabVIEW中,标准的字符串函数库可能无法直接完成二进制...

    C++十六进制转二进制

    本文将深入探讨如何在C++中进行十进制到十六进制以及十六进制到二进制的转换,这对于我们理解和处理计算机内部的数据表示至关重要。 首先,让我们从十进制转十六进制开始。在C++中,我们可以使用内置函数`std::hex`...

    C++ 二进制运算

    例如,假设`a`是一个包含多个二进制位的数据,我们想要获取其第8位到第1位(共8位)的信息,可以使用如下代码: ```cpp #include int main() { int a = 0x3456; int b = 0x00ff; int c = a & b; std::cout ; }...

    二进制数和十进制数相互转换 汇编课程设计

    转换二进制数到十进制数通常使用权重法,每个二进制位根据其位置(从右向左,从0开始)具有相应的权重,权重是2的幂次方。反之,将十进制转换为二进制则常用的方法有短除法或扩展的二进制除法。 在汇编语言中实现...

    二进制转十进制和十进制转二进制

    二进制系统(Binary)是计算机内部的基础,使用0和1来表示所有数据和指令。而十进制是我们日常生活中最常见的计数系统,有0到9这十个数字。此外,八进制(Octal)和十六进制(Hexadecimal)是二进制的便捷表示方式,...

Global site tag (gtag.js) - Google Analytics