`
guhanjie
  • 浏览: 298878 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

无符号型与有符号性的加法区别

阅读更多

 只说最精华的:

1. 整数在内存中是以补码得形式存储的 (补充说明一下:为什么补码? 计算机只有0和1,-5这个数怎么存,计算机中可没有“-”,需要用0和1来表示符号)
2. 计算机中的加、减法运算本质上都是二进制的加法

3. 有符号型和无符号型变量的区别在于二进制首位是否作为符号位:有符号型,首位最为符号位,0表示正,1表示负; 无符号型,首位和其他位一样作为数字位。

4. C语言中,变量赋值时存在“位截取”,如char c = 0xffff1234; 在赋值时,是截取最后8bit二进制数,即 c= 0x34

 

下面贴一段代码,验证一下,就全明白了:

		unsigned char tt1 = 0xff;
		unsigned char tt2 = 5;
		unsigned char sum = tt1+tt2;
		printf("\n%d\t%x\n%d\t%x\n", sum, sum, tt1+tt2, tt1+tt2);

 

结果显示:

        4       4

        260   104

 

总结一句话:

计算机的世界,一切都是0和1;永远只有加法,没有减法!

分享到:
评论

相关推荐

    如何实现有符号无符号加减法,如何处理overflow

    本文详尽介绍了利用verilog实现带进位加法和减法器的方法,和overflow的实现,适用性很广,特别是在处理器如MIPS的设计当中。

    算法心得:高效算法的奥秘(原书第2版).[美]Henry S.Warren,Jr(带详细书签).pdf

    10.11.2 带符号乘法与无符号乘法互化 206 10.11.3 更简单的无符号除法生成算法 206 10.12 余数非负式除法与向下取整式除法的适用性 207 10.13 类似算法 208 10.14 神奇数字示例 209 10.15 用Python语言编写的...

    C语言程序设计标准教程

    各种无符号类型量所占的内存空间字节数与相应的有符号类型量相同。但由于省去了符号位,故不能表示负数。 下表列出了Turbo C中各类整型量所分配的内存字节数及数的表示范围。 类型说明符 数的范围 分配字节数 int -...

    论文研究-基于三值光学计算机的旅行商问题的求解实现.pdf

    然后根据三值光学计算机的位数众多和MSD加法的无进位过程,建立了相应的计算方法,用自主开发的三值逻辑光处理器系统进行求解。结果表明,在数据量同样的情况下,与电子计算机相比,三值光学计算机需较少的计算步数...

    c语言算术运算符越界问题解决方案

    大量的安全漏洞是由于计算机算术运算的微妙细节引起的, 具体的C语言, 诸如符号数和无符号数之间转换, 算术运算的越界都会导致不可... Go~ 问题一: 无符号数的加法越界问题 [定理] [理解] 这个定理比较容易, 也比较能让

    使用Radix-4和Radix-8编码技术的16位展位乘法器的比较分析-研究论文

    乘法器在当今的数字信号处理和各种其他应用中起... 由于有符号和无符号乘法运算是由相同的乘法器单元执行的。 因此,所需的硬件和芯片面积减少了,进而降低了功耗和复杂性。 功耗被认为是现代VLSI设计领域的关键参数。

    Scala程序设计(第2版)

    16.1.1 加法类型与乘法类型 352 16.1.2 代数数据类型的属性 354 16.1.3 代数数据类型的最后思考 355 16.2 范畴理论 355 16.2.1 关于范畴 356 16.2.2 Functor范畴 356 16.2.3 Monad范畴 360 ...

    PL/SQL 基础.doc

    5. SQL与PL/SQL的区别 SQL:1) 第四代语言(智能语言); 2) 做什么,不管怎么做; 3) 缺少过程与控制语句; 4) 无算法 PL/SQL: (相对SQL扩展部分) 1) 扩展变量和类型; 2) 扩展控制结构; 3) 扩展过程与函数...

    计算机组成原理作业.docx

    无符号数 9.在定点二进制运算器中,减法运算一般通过 D 来实现。 A.原码运算的二进制减法器 B.补码运算的二进制减法器 C.补码运算的十进制减法器 D.补码运算的二进制加法器 10.运算器的主要功能是进行 C 。 A...

    计算机组成原理作业.doc.doc

    无符号数 9.在定点二进制运算器中,减法运算一般通过 D 来实现。 A.原码运算的二进制减法器 B.补码运算的二进制减法器 C.补码运算的十进制减法器 D.补码运算的二进制加法器 10.运算器的主要功能是进行 C 。 A...

    汇编指令(chm格式)

    以上四条,测试无符号整数运算的结果(标志C和Z). JG/JNLE 大于转移. JGE/JNL 大于或等于转移. JL/JNGE 小于转移. JLE/JNG 小于或等于转移. 以上四条,测试带符号整数运算的结果(标志S,O和Z). JE/JZ 等于...

    汇编语言第四版.zip

    - **助记符表示**:汇编语言使用助记符(mnemonics)来代表特定的机器指令,这些助记符往往与指令的功能相关,如`MOV`(移动数据)、`ADD`(加法)、`JMP`(跳转)等。每个助记符对应一个特定的二进制操作码。 3. ...

    大二学习汇编语言程序设计时的代码记录~.zip

    - **助记符表示**:汇编语言使用助记符(mnemonics)来代表特定的机器指令,这些助记符往往与指令的功能相关,如`MOV`(移动数据)、`ADD`(加法)、`JMP`(跳转)等。每个助记符对应一个特定的二进制操作码。 3. ...

    汇编语言作业.zip

    - **助记符表示**:汇编语言使用助记符(mnemonics)来代表特定的机器指令,这些助记符往往与指令的功能相关,如`MOV`(移动数据)、`ADD`(加法)、`JMP`(跳转)等。每个助记符对应一个特定的二进制操作码。 3. ...

    汇编语言.zip

    - **助记符表示**:汇编语言使用助记符(mnemonics)来代表特定的机器指令,这些助记符往往与指令的功能相关,如`MOV`(移动数据)、`ADD`(加法)、`JMP`(跳转)等。每个助记符对应一个特定的二进制操作码。 3. ...

    如何用Android Studio创建一个C语言项目并学习开发C语言和汇编语言.zip

    - **助记符表示**:汇编语言使用助记符(mnemonics)来代表特定的机器指令,这些助记符往往与指令的功能相关,如`MOV`(移动数据)、`ADD`(加法)、`JMP`(跳转)等。每个助记符对应一个特定的二进制操作码。 3. ...

    汇编语言笔记 参考《汇编语言 第三版》王爽.zip

    - **助记符表示**:汇编语言使用助记符(mnemonics)来代表特定的机器指令,这些助记符往往与指令的功能相关,如`MOV`(移动数据)、`ADD`(加法)、`JMP`(跳转)等。每个助记符对应一个特定的二进制操作码。 3. ...

    radasm-sample... 用RadASM开发的一些示例汇编语言程序....zip

    - **助记符表示**:汇编语言使用助记符(mnemonics)来代表特定的机器指令,这些助记符往往与指令的功能相关,如`MOV`(移动数据)、`ADD`(加法)、`JMP`(跳转)等。每个助记符对应一个特定的二进制操作码。 3. ...

    北京理工大学汇编语言上机.zip

    - **助记符表示**:汇编语言使用助记符(mnemonics)来代表特定的机器指令,这些助记符往往与指令的功能相关,如`MOV`(移动数据)、`ADD`(加法)、`JMP`(跳转)等。每个助记符对应一个特定的二进制操作码。 3. ...

    汇编语言练习《汇编语言》王爽.zip

    - **助记符表示**:汇编语言使用助记符(mnemonics)来代表特定的机器指令,这些助记符往往与指令的功能相关,如`MOV`(移动数据)、`ADD`(加法)、`JMP`(跳转)等。每个助记符对应一个特定的二进制操作码。 3. ...

Global site tag (gtag.js) - Google Analytics