计算机中的数据有三种表示方法:原码,反码,和补码

所有的运算与存储都是以补码形式运算

原码,反码,补码均有符号位和数值位两部分

符号位为:0  表示“正”

1   表示 “负”

例如:0101         5

1101         -5

存储和运算时均使用补码,这样可以将符号位和数值域统一处理,将加法和减法也统一处理

反码

反码:正数的反码与其原码相同,负数的反码是除符号位意外对其原码诸位去反

+10的原码:

00000000  00001010

+10的反码:

00000000  00001010

-10的反码:

11111111  11110101

补码

补码:正数的补码与原码相同,负数的补码是在其反码的末位+1(二进制类型的+1)

-10的补码

11111111  11110110

补码的意义

补码的意义:符号位和数值域统一处理,将加法和减法可以统一处理

10-10——>10+(-10)

+10的补码:00000000  00001010

-10的补码: 11111111  11110110

经过等于0 :00000000  00000000

溢出

(补码之间相互对应相加,不断向上进一,最后一个一“溢出”)

溢出情况:int分为long(int)和short(int)

short(int)字符范围为:-32768~+32767   (如果超出范围,溢出,(运算是所使用符合范围的整数标准类型))

整数类型

类型

存储大小

值范围

char

一字节

-128~127或0~255

unsigned char

一字节

0~255

signed char

一字节

-128~127

int

2或4字节

-32768~32767或-2147483648~2147483647

unsigned int

2或4字节

0~65535或0~4294967295

short

2字节

-32,768 ~ 32,767

unsigned short

2字节

0 ~ 65,535

long

4字节

-2,147,483,648 ~ 2,147,483,647

unsigned long

4字节

0 ~ 4,294,967,295

浮点类型


注意:e或者E—–>10

实数型的表示:

1,有字母e或者E

2,e之前必须有数值

3,e之后必须为整数

例如:123=1.23X10^2   <===>1.23e2

字符类型:用一对单引号括起来的单个字符,如:‘a’ ,‘b’

字符串常量:双引号括起来的字符序列

ASCII字符代码表



类型

char:通常是一个字节(八位),一个整数类型

int:

float:单精度浮点数,一个符号,8位指数,23位小数


double:双精度浮点数,一位符号,11位指数,52位小数


void:表示类型的确实

数据类型的转换:

1:隐形转换:

自动类型转换:(算数转换)(不同类型数据运算转换成相同数据以便运算长度更长,精度更高)

赋值转换:(赋值两端数据类型相等)赋值转换统一左边类型

输出转换

函数调用转换

2,显式转换:

强制转换:(类型名)表达式 :表达式按照括号类型转换(浮点数强制整型,不四舍五入,直接舍)

C语言标准库函数转换双精度

变量

#include "stdio.h"
int main()
{
int price=0; //定义一个变量,变量的名称为price,类型为int,初始值是0
printf("请输入金额(元):");
scanf("%d",&price);
int change = 100 - price;
printf("找您%d元。\n",change);
return 0;
}

变量的一般形式: