qwb0614

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  187 随笔 :: 0 文章 :: 0 评论 :: 2048 阅读

 

 

 

 

 

 

数在计算机中是以二进制形式表示的,分为有符号数和无符号数,原码、反码、补码都是有符号定点数的表示方法。一个有符号定点数的最高位为符号位,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 的修改过程。关键模块有可以正常执行的单元测试、压力测试脚本,等等。

 

 

posted on   嘎嘎鸭1  阅读(49)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示