补码

编码

在计算机中存储数据的方式

原码

也叫 符号——绝对值码

最高位0表示正 1表示负, 其余二进制位是该数字的绝对值的二进制位

如 5 ———— 00000101

  -5 ———— 11110101

原码简单易懂

加减运算复杂

存在加减乘除四种运算,增加了CPU运算的复杂度

零的表示不唯一

反码

反码运算不便,也没有在计算机中应用

移码

移码表示数值平移n位, n称为移码量

移码主要用于浮点数的阶码的存储

补码

十进制转二进制

正数转二进制

除2取余,直至商为零,余数倒叙排序

负数转二进制

先求与该负数相对应的正数的代码,然后将

所有位取反,末尾加1,不够位数时,左边补1

零的二进制是零

----------------------------------------------------------------------

/*

一个验证程序

2012年2月5日20:20:26

*/

# include <stdio.h>





int main(void){

int i = -100;

printf("%#x\n", i);

/*

100转十六进制64----->二进制 0110 0100---->取反 1001 1011

加1  1001 1100 末尾加1  0xffffff9c

*/

return 0;

}

输出结果:0xffffff9c

----------------------------------------------------------------------

二进制转十进制

如果首位是0,则表明是正数,按普通方法来求

如果首位是1,则表明是负整数

将所有位取反,末尾加1,所得数字就是该负数的绝对值

------------------------------------------------------------------------

/*

一个验证程序

2012年2月5日20:30:42

*/

# include <stdio.h>





int main(void){

int i = 0xffffffef;

/*

1111....101111

取反加1后 0000....010001 对应十六进制11  十进制 17

*/

printf("%d\n", i);

return 0;

}

输出结果:-17

------------------------------------------------------------------------

1.在vc++6.0中一个int类型的变量所能存储的数字的范围是多少?

8位二进制所代表的十进制示意图

 二进制 十进制

0000 0000 -----------  0

0000 0001 -----------  1

.........

0111 1111 ----------- 127

1000 0000 --取反加1-- -128

1000 0001 --取反加1-- -127

1000 0010 --取反加1-- -126

.........

1111 1111 --取反加1-- -1

 所以int类型变量所能存储的最大正数用十六进制表示是: 0x7fff ffff

 int类型变量所能存储的绝对值最大的负数用十六进制表示是:0x8000 0000

------------------------------------------------------------------

/*

一个验证程序

2012年2月5日20:57:10

*/

# include <stdio.h>





int main(void){

char cha = 0x7f; //0111 1111   127

printf("%d\n", cha);





char ch = 0x80;  //1000 0000   -128

printf("%d\n", ch);



char c = 128;   // 1000 0000   -128

printf("%d\n", c); 



return 0;

}

输出结果:

127

-128

-128

------------------------------------------------------------------

2.最小负数的二进制代码是多少?

3.最大正数的二进制代码是多少?

4.已知一个整数的二进制代码求出原始的数字

5.数字超过最大正数会怎样?

6.不同类型数据的相互转换

c语言学习笔记(12)——补码的更多相关文章

  1. HTML语言学习笔记(会更新)

    # HTML语言学习笔记(会更新) 一个html文件是由一系列的元素和标签组成的. 标签: 1.<html></html> 表示该文件为超文本标记语言(HTML)编写的.成对出 ...

  2. GO语言学习笔记(一)

    GO语言学习笔记 1.数组切片slice:可动态增长的数组 2.错误处理流程关键字:defer panic recover 3.变量的初始化:以下效果一样 `var a int = 10` `var ...

  3. Go语言学习笔记十三: Map集合

    Go语言学习笔记十三: Map集合 Map在每种语言中基本都有,Java中是属于集合类Map,其包括HashMap, TreeMap等.而Python语言直接就属于一种类型,写法上比Java还简单. ...

  4. 《C# 语言学习笔记》——定义属性

    属性定义的方式与字段类似,但包含的内容比较多. 属性拥有两个类似于函数的块,一个块用于获取属性的值,另一个块用于设置属性的值.这两个块也称访问器,分别用于get和set关键字定义,可以用于控制对属性的 ...

  5. 《C# 语言学习笔记》——目录

    C# 简介 变量和表达式 流程控制 3.1 布尔逻辑 3.2 goto语句 3.3 分支 3.4 循环 变量的更多内容 4.1 类型转换 4.2 复杂的变量类型 4.3 字符串的处理 函数 5.1 定 ...

  6. matlab学习笔记12单元数组和元胞数组 cell,celldisp,iscell,isa,deal,cellfun,num2cell,size

    一起来学matlab-matlab学习笔记12 12_1 单元数组和元胞数组 cell array --cell,celldisp,iscell,isa,deal,cellfun,num2cell,s ...

  7. Go语言学习笔记(1)——顺序编程

    Go语言学习笔记这一堆主要是<Go语言编程>(人民邮电出版社)的读书笔记.中间会穿插一些零碎的点,比如源码学习之类的.大概就是这样吧. 1. 顺序编程 1.1 变量 变量的声明: var ...

  8. Ext.Net学习笔记12:Ext.Net GridPanel Filter用法

    Ext.Net学习笔记12:Ext.Net GridPanel Filter用法 Ext.Net GridPanel的用法在上一篇中已经介绍过,这篇笔记讲介绍Filter的用法. Filter是用来过 ...

  9. 2017-04-21周C语言学习笔记

    C语言学习笔记:... --------------------------------- C语言学习笔记:学习程度的高低取决于.自学能力的高低.有的时候生活就是这样的.聪明的人有时候需要.用笨的方法 ...

  10. 2017-05-4-C语言学习笔记

    C语言学习笔记... ------------------------------------ Hello C语言:什么是程序:程序是指:完成某件事的既定方式和过程.计算机中的程序是指:为了让计算机执 ...

随机推荐

  1. [TypeScript] Sharing Class Behavior with Inheritance in TypeScript

    Typescript classes make inheritance much easier to write and understand. In this lesson we look into ...

  2. Linux动态链接库的创建与使用

    Linux动态链接库的创建与使用1. 介绍     使用GNU的工具我们如何在Linux下创建自己的程序函数库?一个“程序函数库”简单的说就是一个文件包含了一些编译好的代码和数据,这些编译好的代码和数 ...

  3. Android 实现最新版QQ图像裁剪功能

    这是依据翔神那篇高仿微信图像截取改的  能够先去看  Android 高仿微信头像截取 打造不一样的自己定义控件 这篇文章. 眼下还有个小问题.就是截取成圆形图片之后 会有黑色的边框填充.不知道怎么解 ...

  4. POJ2739_Sum of Consecutive Prime Numbers【筛法求素数】【枚举】

    Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 19350 Ac ...

  5. 美国汪利宏的蒙特卡洛及卷积模拟程序,可以模拟top-hat光束和高斯光束在生物组织中的传输

    链接:https://pan.baidu.com/s/1yaCsQ8TCVPSIZ4TVBZgfnw 密码:otzr

  6. 我的前端规范——HTML篇

    相关文章 简书原文:https://www.jianshu.com/p/a46ff0504982 我的前端规范——开篇:http://www.cnblogs.com/shcrk/p/9271561.h ...

  7. [CSS] Manipulate Images Using CSS Filter and Blend Modes

    Apply filters like blur, brightness, saturation and hue to images. Combined with CSS blend modes, yo ...

  8. java连接MongoDB查询导出为excel表格

    背景 因为项目需求.每一个星期须要统计每一个公众号7天的訪问数,月底就须要统计一个月的訪问数,40多个公众号.每次手动统计都须要花费1个小时,总之是一项无技术耗时耗神的手工活. 于是.想写个程序来统计 ...

  9. IIS服务器能支持10万并发

    服务器能支持10万并发由于一个项目的访问量越来越大,从原来的几百个,增加到现在50多万个每天,所以阿里的服务器也扛不住了,于是就想办法,查了N多资料,总结了以下方法,才解决这问题,每天一共访问量50多 ...

  10. iOS开发之Quartz2D 二:绘制直线,曲线,圆弧,矩形,椭圆,圆

    #import "DrawView.h" @implementation DrawView /** * 作用:专门用来绘图 * 什么时候调用:当View显示的时候调用 * @par ...