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

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

时间: 10-07

原码、反码和补码和数据类型的常量的相关文章

计算机的原码, 反码和补码

一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011.如果是 -3 ,就是 10000011 . 那么,这里的 00000011 和 10000011 就是机器数. 2.真值 因为第一位是符号位,所以机器数的形式值就不等于真正的数值.例如上面

【组原】计算机的原码, 反码和补码

本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计

进制转换转换以及原码反码和补码

一.进制转换 1.数制和码制 常用数制表示法 十进制 二进制 八进制 十六进制 8421BCD码 0 0 0 0 0000 1 1 1 1 0001 2 10 2 2 0010 3 11 3 3 0011 4 100 4 4 0100 5 101 5 5 0101 6 110 6 6 0110 7 111 7 7 0111 8 1000 10 8 1000 9 1001 11 9 1001 10 1010 12 A 0001 0000 11 1011 13 B 0001 0001 12 1100

进制的转化and原码反码和补码

常用的进制 1.二进制(0b):  由两个数字组成 0-1 2.八进制(0o):  由八个数字组成0-7 3.十六进制(0x):  由十六个数字组成:  0-f 各进制与十进制之间的相互转换 0b100   = 0x2^0 + 0x2^1 + 1x2^2 = 4(十进制) 0o100   = 0x8^0 + 0x8^1 + 1x8^2 = 64(十进制) 0x100   = 0x16^0 + 0x16^1 + 0x16^2 = 256(十进制) 二进制与八进制的转换 三位合成一位: 0b 100

原码, 反码, 补码 详解

本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计

[转]原码, 反码, 补码 详解 很全

本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计

关于原码, 反码, 补码的复习

原本大一时考试90+的组成原理,隔了太长时间没使用,概念也慢慢模糊了,由于最近考试的基础知识有可能用到,于是,在网上找些资料,整理成这个文章,方便以后某天回来看看,好记性真不如烂笔头. 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011.如

详解 原码, 反码, 补码

本篇文章讲解了计算机的原码, 反码和补码. 并且深入探求了为何要使用反码和补码, 以及更进一步论证了为何可以用反码和补码的加法计算原码的减法. 论证部分如有错误请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机中用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计算机字长为8位

[转载]原码, 反码, 补码 详解

本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计