数在计算机中是以二进制形式表示的,分为有符号数和无符号数,原码、反码、补码都是有符号定点数的表示方法。一个有符号定点数的最高位为符号位,0是正,1是负(以8位整数为例),例如0000001 就是+1,1000001 就是-1,原码就是这个数本身的二进制形式,正数的反码和补码都是和原码相同,负数的反码是将其原码除符号位之外的各位求反 [-3]反=[10000011]反=11111100 。负数的补码是将其原码除符号位之外的各位求反之后在末位再加1,[-3]补=[10000011]补=11111101 。一个数和它的补码是可逆的。特别注意,如果+1之后有进位的,要一直往前进位,包括符号位!(这和反码是不同的!)[10000000]补=[10000000]反+1=11111111+1=(1)00000000=00000000(最高位溢出了,符号位变成了0)

为什么要设立补码呢?

通过补码运算,可以把减法运算变成加法运算;而乘法可以用加法来做,除法可以转变成减法。这样一来,加、减、乘、除四种运算“九九归一”了。这对简化CPU的设计非常有意义,CPU里面只要有一个加法器就可以做算术运算了。还有一个原因是为了统一正0和负0,正零:00000000 负零:10000000 这两个数其实都是0,但他们的原码却有不同的表示,但是他们的补码是一样的,都是00000000。

1. 原码

将一个整数转换成二进制形式,就是其原码。例如short a = 6; a 的原码就是0000 0000 0000 0110;更改 a 的值a = -18; 此时 a 的原码就是1000 0000 0001 0010

通俗的理解,原码就是一个整数本来的二进制形式。

2. 反码

对于正数,它的反码就是其原码(原码和反码相同);负数的反码是将原码中除符号位以外的所有位(数值位)取反,也就是 0 变成 1,1 变成 0。例如short a = 6; a 的原码和反码都是0000 0000 0000 0110;更改 a 的值a = -18; 此时 a 的反码是1111 1111 1110 1101

3. 补码

对于正数,它的补码就是其原码(原码、反码、补码都相同);负数的补码是其反码加 1。例如short a = 6; a 的原码、反码、补码都是0000 0000 0000 0110;更改 a 的值a = -18; 此时 a 的补码是1111 1111 1110 1110

软件工程,是应对软件危机提出的,为生产可复用,易读,易懂,好测试,好维护的软件而形成的编程规范。是把系统的,有序的,可量化的方法应用到软件的开发,运营和维护上的过程。涉及邻域包括但不限于:软件需求分析,软件设计,软件构件 ,软件测试和维护等方面。而且涉及学科较多,计算机科学,计算机 工程,管理学,数学,项目管理学。质量管理,系统工程,用户体验设计等。总之,学好软件工程这门理论课,还是首先要有大局意识和整体把握。因为整体的把握就是为进一步的开发提供了方向。1.研发出符合用户需求的软件通过实际的工作收集、推导、提炼需求,并在软件发布后通过实际数据验证需求的确被满足了。需求来自于实际,而不是自己想象出来的“需求”或者人云亦云的需求(例如:虚拟的、没人用的、也没有数据的“图书馆管理系统" )。2.通过一定的软件流程,在预计的时间内发布“足够好的软件”这个软件不是期末前两天由两三个同学熬通宵赶出来的急就章,而是经历了一定的软件流程,通过全体团队成员的努力,在一个长期阶段(一个学期内逐步完成的。对于现实生活中的软件团队来说,好产品不是某个英雄长期加班突击出来的。3.能证明所开发的软件是可以维护和继续发展的例如,对用户需求的分析有详细的文档说明,包括对将来发展的分析和计划。主要功能的设计文档说明和软件的实际行为一致。源代码完整。能用软件管理软件看到源代码的每次修改记录,Bug 的修改过程。关键模块有可以正常执行的单元测试、压力测试脚本,等等。

 

Java学习文档的更多相关文章

  1. ORACLE官网JAVA学习文档

    Trails Covering the Basics   1 Getting Started 1.1 The Java Technology Phenomenon 1.1.1 About the Ja ...

  2. Openstack api 学习文档 & restclient使用文档

    Openstack api 学习文档 & restclient使用文档 转载请注明http://www.cnblogs.com/juandx/p/4943409.html 这篇文档总结一下我初 ...

  3. 2013 最新的 play web framework 版本 1.2.3 框架学习文档整理

    Play framework框架学习文档 Play framework框架学习文档 1 一.什么是Playframework 3 二.playframework框架的优点 4 三.Play Frame ...

  4. 优于 swagger 的 java markdown 文档自动生成框架-01-入门使用

    设计初衷 节约时间 Java 文档一直是一个大问题. 很多项目不写文档,即使写文档,对于开发人员来说也是非常痛苦的. 不写文档的缺点自不用多少,手动写文档的缺点也显而易见: 非常浪费时间,而且会出错. ...

  5. soapUI学习文档(转载)

    soapUI 学习文档不是前言的前言记得一个搞开发的同事突然跑来叫能不能做个WebService 性能测试,当时我就凌乱了,不淡定啊,因为我是做测试的,以前连WebService 是什么不知道,毕竟咱 ...

  6. 全网首发,腾讯T3-3整理Netty学习方案(体系图+项目+学习文档)

    前言: 想要学好一门技术,最起码要对他有一定的了解,起码听说过相应的底层原理的东西吧,最起码你要有一点能和别人交流的内容吧,下面是我精简的一点内容,希望对于大家了解netty能有一点帮助 Netty是 ...

  7. Openstack python api 学习文档 api创建虚拟机

    Openstack python api 学习文档 转载请注明http://www.cnblogs.com/juandx/p/4953191.html 因为需要学习使用api接口调用openstack ...

  8. java帮助文档下载

    JAVA帮助文档全系列 JDK1.5 JDK1.6 JDK1.7 官方中英完整版下载JDK(Java Development Kit,Java开发包,Java开发工具)是一个写Java的applet和 ...

  9. 如何从sun公司官网下载java API文档(转载)

    相信很多同人和我一样,想去官网下载一份纯英文的java API文档,可使sun公司的网站让我实在很头疼,很乱,全是英文!所以就在网上下载了别人提供的下载!可是还是不甘心!其实多去看看这些英文的技术网站 ...

  10. JAVA帮助文档全系列 JDK1.5 JDK1.6 JDK1.7 官方中英完整版下载

    JAVA帮助文档全系列 JDK1.5 JDK1.6 JDK1.7 官方中英完整版下载JDK(Java Development Kit,Java开发包,Java开发工具)是一个写Java的applet和 ...

随机推荐

  1. 用简单的代码,将小程序文件直传到腾讯云COS实践

    简介 本文介绍如何不依赖 SDK,用简单的代码,在小程序直传文件到腾讯云COS的存储桶. 注意: 本文档内容基于 XML 版本的 API. 前期条件 登录 对象存储控制台 ,创建存储桶,设置 Buck ...

  2. ZIP文件操作工具类

    2 3 import lombok.extern.slf4j.Slf4j; 4 import org.apache.commons.io.FilenameUtils; 5 6 import java. ...

  3. (linux笔记)开放防火墙端口

    关闭防火墙 CentOS 7.RedHat 7 之前的 Linux 发行版防火墙开启和关闭( iptables ): 即时生效,重启失效 #开启 service iptables start #关闭 ...

  4. 046_salesforce 中 Get URL

    Suppose u have the whole URL as: < https://cs14.salesforce.com/apex/myVFpage?id=906F00000008w9wIA ...

  5. setAttribute动态添加

    btnDel.setAttribute('type', 'button'); //type="button" btnDel.setAttribute('value', '删除'); ...

  6. noi 1.5 28 分离整数的各个数位

    描述 给定一个整数,要求从个位开始分离出它的每一位数字. 输入 输入一个整数,整数在1到100000000之间. 输出 从个位开始按照从低位到高位的顺序依次输出每一位数字.数字之间以一个空格分开. 样 ...

  7. iOS包大小计算

    一.LinkMap文件分析 说明:LinkMap数据是根据文章<LinkMap文件分析>中方法实验实测数据. 如何获得LinkMap文件 1.在XCode中开启编译选项Write Link ...

  8. SQL注入绕过某waf的详细过程。

    0x00起因 看到大家都有绕waf的payload,想了想,这样下去不行啊.总不能找人家要吧,于是我开启了电脑,开始我的bypass之路. 0x01过程 准备完毕后,开始,首先判断注入and 1=1 ...

  9. webpack devserver proxy 配置以及react多页面

    github地址: https://github.com/yangstar/React-antd-webpack-dev-server var webpack = require('webpack') ...

  10. 【python】第二模块 步骤一 第一课、MySQL的介绍

    第一课.MySQL的介绍 一.课程介绍 1.1 课程介绍 学习目标 了解关系型数据库的重要性 为什么会出现关系型数据库? 有哪些常见的关系型数据库? 掌握MySQL的安装和配置 怎么安装MySQL数据 ...