原码

计算机组成原理

浪尽此生 提交于 2019-12-21 05:35:36
I:原码,补码和反码 1. 在计算机系统中,数值一律用 补码 来存储 使用补码,可以将符号位和其他位统一处理;同时减法也可按加法处理。 两个用补码表示的数相加是,如果最高位(符号位)有进位,则进位被抛弃。 2.正数的补码和原码相同 3.负数的补码:符号位为1,其余位为原码按位取反,然后整个数+1 4.已知补码求原码: 负数:(符号位)为1,其余各位取反,然后整个数+1 5.模:   一个计量系统的计数范围,时钟的计量范围是0~11,模=12   模实质上说计量器产生“溢出”的量,它的值在计量器表示不出来,计量器上只能给你表示出模的余数。 任何有模的计量器,均可减法为加法运算。 例如当前时间是6点,但时钟指向10点,那么可以倒拨4的小时 10 - 4 = 6;也可以顺拨8个小时 (10 +8)%12 = 6 ,对于模而言,8和4互为补数,两者相加等于模。 Int32 a = -1 使用Convert.ToString()方法转换为字符串时,会转换成一个32位长度的字符串 11111111111111111111111111111111 对这里还是不明白。首位为1(负号)后面取反?写个小东西验证一下。 namespace SchedulerEngine{ public partial class MainPage : UserControl { public MainPage() {

计算机组成原理复习

旧时模样 提交于 2019-12-17 19:12:30
title: 计算机组成原理复习 date: 2018-06-28 14:08:04 tags: 课程学习 1.计算机硬件包括:输入设备,输出设备,运算器,控制器,存储器 2.计算机软件一般分为两大类:一类应用软件,另一类叫系统软件,操作系统属于系统软件类 3.第一代计算机的逻辑部件采用的是电子管,1946-1957年; 第二代计算机的逻辑部件采用的是晶体管,1958-1964年; 第三代计算机的逻辑部件采用的是中小规模集成电路,1965-1971年; 第四代计算机的逻辑部件采用的是大规模及超大规模集成电路,1972至今 4.计算机系统由硬件系统和软件系统构成。 5.计算机系统的三个层次结构由内到外分别是硬件系统,软件系统和应用软件 6.用高级语言编写的程序称为源 程序,经编译程序或解释程序翻译后称为 目标程序 7.将源程序翻译成目标程序的软件是编译器或编译程序 8.程序设计语言一般分为3类:机器语言,汇编语言,高级语言 9.编译方式是使用编译程序把源程序编译成机器代码的 目标程序 ,并以机器程序 的形式保留 10.简要说明计算机系统的层次结构? 计算机系统具有层次性,它由多级层次结构组成。从功能上计算机系统可分为五个层次级别: 第一级是微程序设计级。这是一个硬件级,它由机器硬件直接执行微指令。 第二级是一般机器级,也称为机器语言级。它由微程序解释机器指令系统.这一级是硬件级。

为什么一个byte的存储范围是-128~127?

让人想犯罪 __ 提交于 2019-12-12 15:55:00
为什么一个byte的存储范围是-128~127? 文本关键字:byte、字节、二进制位、反码、补码 文章目录 为什么一个byte的存储范围是-128~127? 一、byte 二、反码与补码 **1. 反码 补码 三、byte的数据范围 一、byte** 在计算机中,一个二进制位是最小的存储单元,由于是二进制,所以能存储的数字只能是0和1。显然,如果我们直接去操作每个二进制位将是很麻烦的过程,所以在编程中我们直接使用的是其他的数据类型,如:byte、int、float。这些数据类型能够使我们的数据存储更加方便,我们只需要关心他们能够存储多大范围和什么样类型的数据就可以了。 那么一个byte,也就是我们所说的一字节,他所占用的空间是8个二进制位。 1 byte = 8 bit(比特) 这8个bit就是8个二进制位,其中有一个是符号为,刚好可以用0和1来代表正负。那么这8个二进制位到底能够表示多大范围的数字呢?对于正数的进制转换相信难不倒大家,也可以参考底部的相关文章,我们先来看一下负数在二进制下是如何表示和转换的。 二、反码与补码 首先把公式立在这里: 正数的补码 = 原码 = 反码 负数的补码 = 反码 + 1 那么首先什么是原码呢?很简单,在我们不考虑符号的情况下,按照进制的转换方法将一个十进制数转换为二进制数,再添加上相应的符号位就完成了。符号位出现在最前(左)面一位,0代表正数

byte范围:-128  到 127 原因

 ̄綄美尐妖づ 提交于 2019-12-12 11:36:52
byte范围:-128 到 127 原因 : 在计算机内,定点数有3种表示法:原码、反码和补码 原码 :二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。 反码 :正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。 补码 :正数的补码与其原码相同;负数的补码是在其反码的末位加1。 java中用补码表示二进制数,补码的最高位是符号位,最高位为“0”表示正数,最高位为“1”表示负数。 正数补码为其本身; 负数补码为其绝对值各位取反加1; 例如: +21,其二进制表示形式是00010101,则其补码同样为00010101 -21,按照概念其绝对值为00010101,各位取反为11101010,再加1为11101011,即-21的二进制表示形式为11101011 步骤: 1、byte为一字节8位,最高位是符号位,即最大值是01111111,因正数的补码是其本身,即此正数为01111111 十进制表示形式为127 2、最大正数是01111111,那么最小负是10000000(最大的负数是11111111,即-1) 3、10000000是最小负数的补码表示形式,我们把补码计算步骤倒过来就即可。10000000减1得01111111然后取反10000000 因为负数的补码是其绝对值取反,即10000000为最小负数的绝对值

java第二期:位运算

送分小仙女□ 提交于 2019-12-11 00:37:51
一、位运算的介绍 位运算:又称是二进制运算,位(代表的是二进制,或者是bit位)1字节 = 8bit(位)。 连接的操作数:其实也是二进制,返回值是一个数据类型。 存储格式:二进制数存储在计算中都是以补码的形式进行存储的。 原码 --> 反码 --> 补码 --------1--------- 2 步奏1:反码 = 0和1的替换 步奏2:补码 = 在反码的前提下+1 原码 <-- 反码 <-- 补码 -------- 2--------- 1 步奏1:反码 = 补码-1 步奏2:原码 = 反码的0、1替换 下面有步奏案例 关于3种状态码的认知在第六标题处,可往下观看。 二、位运算符的使用(bit的补码形式) 介绍运算符: | & ^ :双目运算符,操作数有两个 ~ : 单目运算符,操作数只有一个 3 和 4 的一个按位运算,底层转换为二进制数进行一个运算 3的二进制数:0b0000000000 00000000000 000000000 11 4的二进制数:0b0000000000 00000000000 000000001 00 因为一个int = 4byte 1byte = 8bit 所以将int转二进制数为 32bit(位) 1、按位与 & 规则:在二进制数位上只有相同1的时候才为true 0 1 1 1 0 0 上下都不同,所有结果为 0 0 0 3 & 4 =

负数为什么要用补码来表示?

穿精又带淫゛_ 提交于 2019-12-06 19:12:26
上篇文章讲了“负数在计算机中是怎么存储的”。看完之后,应该对原码,反码,补码有了基本的了解了。 今天,我们深入探讨一下,为什么计算机中要用补码来表示负数? 首先,我们应该清楚,原码是方便给人看的。看到一个数的原码,我们就能根据符号位和后边的二进制位,计算出这个数的实际值。为了简单起见,我以一个字节8位来举例,如 // 1 的原码 ,最高位0代表正数 0000 0001 // -1 的原码, 最高位1代表负数 1000 0001 可以看到,1和 -1 的原码只有符号位不同。然后,思考一个问题,1 - 1 = ? 是的,我们可以直接通过减法去计算,得出1-1=0 。但是,做减法运算时,可能会遇到不够减而需要借位的情况,这显然是比较麻烦的。我们换一种思路。 1-1 在数学中等同于 1+(-1)。这样,把减法转换为加法就简单的多了,只需要考虑进位就可以了。(其实,计算机中只有加法器,没有减法器,因此减法是通过加法器来计算的。) 于是,我们看下,把1和-1的原码相加等于多少(需要让符号位也参与运算) 0000 0001 + 1000 0001 1000 0010 结果是 -2 ,这显然不符合我们的预期。 为了解决原码减法的问题,于是,出现了反码。使用反码,再来计算一下。 // 1的反码,同原码 0000 0001 // -1的反码,符号位不变,其他取反 1111 1110 相加之后,得

Java学习笔记1(基础)

蹲街弑〆低调 提交于 2019-12-06 14:50:13
计算机语言和 Java 计算机语言主要由一些指令(包括数字、符号和语法等)组成,可以分为机器语言、汇编语言、高级语言三大类。 Java是一种高级计算机语言,是一种可以编写跨平台应用软件、完全面向对象的程序设计语言。 特点:简单,面向对象,安全(不支持指针,一切对内存的访问都必须通过对象的实例变量来实现),跨平台,支持多线程(程序中有多个任务可以并发执行)。 Java是如何运行的 程序源代码 →编译器(JDK)→字节码→JVM(Java虚拟机(JRE))→机器码010010...→计算机 Java开发环境 ,简称 JDK(Java Development Kit),它是整个Java的核心,其中包括Java编译器、Java运行工具、文档生成工具、Java打包工具等。 Java的运行环境 ,简称 JRE(Java Runtime Environment)。现在JDK工具中自带了一个JRE。 定义标识符遵循的规则: ①包名所有字母一律小写,例如cn.itcast.test②类名和接口名每个单词的首字母都要大写,例如ArrayList③常量名所有字母都大写,例如DAY_OF_MONTH④变量名和方法名的第一个单词首字母小写,之后的单词首字母大写,例如lineNumber、getNum⑤尽量使用有意义的单词来定义标识符,例如passWord表示密码,userName表示用户名。 Java中常量

源码,反码,补码

瘦欲@ 提交于 2019-12-06 07:13:46
原文地址: https://www.imooc.com/article/16813?block_id=tuijian_wz 我的总结:太多地方说负数的补码=反码+1,理解了这篇文章之后,发现,这仅仅是个巧合,补码和反码有关系,但是没有直接关系。 本文从原码讲起。通过简述原码,反码和补码存在的作用,加深对补码的认识。力争让你对补码的概念不再局限于: 负数的补码等于反码加一 。 接触过计算机或电子信息相关课程的同学,应该都或多或少看过补码这哥仨。每次都是在课本的最前几页,来上这么一段: 什么反码是原码除符号位,按位取反。补码等于反码加一。 然后给整得莫名其妙,稀里糊涂地,接着就是翻页,反正后面的内容也跟三码没多大关系。 我原来也是看了好几遍都没看懂。古人云:事不过三。学C语言的时候,看过一次。不懂?看《计算机基本组成原理》的时候看过,还是不懂!到了大三,上《单片微机原理与接口技术》的时候仍旧是不懂。到了期末,复习的时候,和宿舍的人瞎聊。说讲讲这些码呀,我说我也不是很清楚呀。然后就一边说怎么求码,一边算。玩着玩着,突然就明白了。我说好,打住。不说了,放假我在好好整理下思路,于是就有了这篇额。。算讨论帖吧。 好了,废话不多说。开始我们的原码,反码,补码之旅。 (一)预备知识 认识二进制,十六进制。会二进制与十进制的相互转化运算 由计算机的硬件决定,任何存储于计算机中的数据,其

JavaSE基础(九)--Java二进制运算

前提是你 提交于 2019-12-06 05:44:57
Java二进制运算 Java二进制表示法 首先了解下二进制,二进制是相对十进制而言的,当然还有八进制,十六进制等等,我们常用的都是十进制,计算机用的都是二进制,而符号表示常用十六进制。 二进制就是只有0、1两个值表示的数,规则是逢二进一。数据存储在内存中都是存储的二进制,二进制又可分为原码、反码、补码。最终存储在内存中的是“补码”。 在了解原码、反码、补码之前先得了解一下机器数和真值。 机器数 一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机用机器数的 最高位 存放符号,正数为0,负数为1。比如,十进制中的数 +3 , 计算机字长为8位 ,转换成二进制就是 0000 0011 。如果是 -3 ,就是 100 00011 。那么,这里的 0000 0011 和 1000 0011 就是机器数。 机器数的真值 因为第一位是符号位,所以机器数的形式值就不等于真正的数值。 例如上面的有符号数 1000 0011,其最高位1代表负,其真正数值是 -3,而不是形式值131(1000 0011转换成十进制等于131)。 所以,为区别起见, 将带符号位的机器数对应的真正数值 称为 机器数的真值 。例:0000 0001的真值 = +000 0001 = +1,1000 0001的真值 = –000 0001 = –1。 原码、反码

C++编程学习(二) 数据

旧街凉风 提交于 2019-12-06 02:19:54
博主已经有一些基础了,所以写的东西可能是容易错的,或者以前没记住的,或者是对理解知识点有帮助的。因此如果有纯小白看到了这篇博文,不懂的地方请自行百度啦~ 另外,本系列所有内容的图片均来自于西北工业大学魏英老师的MOOC教程,侵权删,讲得非常不错,推荐大家去看! 一、进制 1、计算机内的信息都是“0”和“1”的二进制形式。 2、二进制B,十进制D,八进制O,十六进制H。 3、10进制转2进制:【整数部分】不断除以2取余,余数从右往左排列;【小数部分】不断乘以2取整,从左向右排列。例如: 4、2进制转10进制: 5、2进制转16进制: 6、2进制转8进制: 7、进制互转: 二、数值数据(好像不常用) 1、0表示正数、1表示负数。 2、 原码:负数原码的符号位为1;   反码:负数的反码为将原码除符号位外的所有位按位取反;   补码:负数的补码为将反码加1。 三、数据类型(划重点) 1、概览 2、内存长度(一般用于判断数据溢出) 3、溢出的解释 一般地,超过最大值的有符号整型数值会向上溢出变成负数,超过最小值的数据会向下溢出变成正数。例如: 四、字面常量 1、浮点型常量默认为double型。若在浮点数后面加一个字母f或F,则它是float型。 2、以一对单引号(‘ ’)括起来的一个字符表示字符常量, ► 如:‘A’、‘0’、‘&’、’ab’ 错误! ► 字符常量表示的是一个字符