码迷,mamicode.com
首页 > 其他好文 > 详细

原码、反码和补码和数据类型的常量

时间:2015-10-07 17:19:38      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:

1. 计算机中,只有0和1。处理数据之前,必须先把其放入到内存中进行保存。依据数据类型,确定数据保存的格式。

整数按补码形式,

实数按浮点数形式,

字符按ASCII码形式。

2. 每种类型的数据都有常量和变量之分。按类又分为:

基本类型:整型 实型 字符类型 枚举类型

构造类型:数组类型 结构类型 联合类型

指针类型

空类型(也称无值类型): void

3. 二进制与其他进制的转换

规则:从小数点开始,整数部分向左、小数部分向右。

八进制三位,16进制4位。

二进制的运算:+-*/%

4. 用计算机字长的二进制位来表示机器数。数符和数值。

带符号位的机器数对应的数值称为机器数的真值。0表示正,1表示负。

当计算机字长的所有二进制位都用来表示数值时,称为无符号数。

5. 原码,反码,补码

反码和补码又原码得到。

首先,注意,正数的反码和补码是跟原码相同的。

负数的反码:就是数符位不变,即1表示负,数值部分取反,即相反数。

负数的补码:就是数符位不变,即1表示负,数值部分为其反码加1。

整数X的原码是指:其数符位为0表示正,为1表示负。其数值部分是X的绝对值的二进制。

假定字长为8位:

【-1】原码= 1000,0001

【-1】反码=1111,1110

【-1】补码=1111,1111

 数符位始终是不变的。

6. 定点数和浮点数

定点数:当约定小数点位置固定在机器数的最低位之后时,称为定点整数。

浮点数:也称实数,它的表示法与科学计数法相似。

-100.011=-10001.1×2^-010 = -0.100011×2^+011 = -0.0100011×2^+100,S为尾数,J为阶码。

在计算机中规定浮点数的尾数采用纯小数形式,上例中的0.100011, 0.010011就是。

如果尾数最高位为1,称为规格化数,上例中的0.100011×2^+011=0.100011*2^11就是规格化数

存储形式:阶符|阶码|数符|尾数

上例的存储形式位:0|11|1|1011

注意:阶码和尾数都可以采用补码存储。

7. ASCII

字符包括各种文字、数字、符号和控制符。在在计算机内部,它们也要用二进制表示。

字符的编码方法很多,使用最普遍的是ASCII(American Standard Code for Information Interchange)。

8.  常量和变量的占据内存多少位?

基本型(int)整形数在内存中占用字节的多少与编译器有关。

Turbo C中:一个int占据16bit的内存单元。

VC中:1个int占据32位的内存单元,按补码的方式存储。

9. 字符常量是一个整数。字符在内存中以ASCII码值的形式存储。

#include <stdio.h>
main(void)
{
char a=‘0‘;
int b=48;
printf("%d %c\n",a,b);
}

10. 字符串常量也叫字符串字面值,是用双引号括住的由0个或多个字符组成的字符序列。"I am a student" ""

注意:双引号不是字符串的一部分,它只用与限定字符串。

C语言规定:在每一个字符串的结尾系统自动加上一个字符串结束标志符‘\0‘,以便判断字符串是否结束。

China的存储形式:‘C‘|‘h‘|‘i‘|‘n‘|‘a‘|‘\0‘,所以其包含6个字符。

11. 符号常量是指用一个标识符代表的一个常量,C语言中用#define来定义一个符号常量。符号常量一般用大写字母来表示

#define PI 3.1415926

 

原码、反码和补码和数据类型的常量

标签:

原文地址:http://www.cnblogs.com/htmlphp/p/4858859.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!