高效自学C语言基本数据类型、表达式及运算符1.0

#C语言基本数据类型、表达式及运算符1.0
附思维导图

请添加图片描述

一、 基本数据类型、表达式及运算符

  1. c语言中的数据类型
    基本数据类型
    整数类型*
    字符类型*
    浮点类型*
    缺省类型(空类型 void)
    泊尔类型(c++)
    构造数据类型
    指针类型
  2. 整数类型
    有符号整型:可以表示正数也可以表示负数
    最高位:符号位 0:正数 1:负数
    其他位:数据位
    无符号类型:只能表示正数(>=0)
    64位ubuntu系统下:
     short 短整型
    内存:2字节
    unsigned short:无符号短整型
    最大值:1111 1111 1111 1111—》2^16-1=65535
    最小值:0000 0000 0000 0000—》0
    short(signed short):有符号短整型
    最大值:0111 1111 1111 1111—》2^15=32767
    最小值:1000 0000 0000 0000—》-32768

 int 整形
内存:4
unsigned int::无符号整形
最大值:1111 1111 1111 1111 1111 1111 1111 1111—》2^32-1 42亿
最小值:0000 0000 0000 0000 0000 0000 0000 0000—》0
Int(signed int):有符号整形
最大值:0111 1111 1111 1111 1111 1111 1111 1111—》2^31-1 21亿
最小值:1000 0000 0000 0000 0000 0000 0000 0000—》-2^31 -21亿
 long 长整型
内存:8
unsigned long(int):无符号长整形
最大值:2^64-1
最小值:0
long(signed long (int);有符号长整型
最大值:2^63-1
最小值:-2^63

关键字:sizeof(数据类型)—》返回一个结果:整形数据
获取某种数据类型在内存中所占的字节数
向终端打印数据工具:
可以输出“”里面的内容
Printf(“hello world”);
Printf(“%d\n”,sizeof(short))
%d—》格式控制符(占位)—》会将,后面的值替换到%开头的位置
%d—》控制十进制整形(int)数据输出
%ld—》控制十进制整形(long)数据输出
%c—》控制以字符方式输出
%f—》控制单精度方式输出
%lf—》控制双精度方式输出
%u—》控制无符号整形数据方式输出
%lu—》控制无符号长整形数据方式输出

2)整形数据在内存中的存储方式:
无符号整形:原码(补码=原码)
100 —》unsigned short
内存:0000 0000 0110 0100
有符号整形:
最高位:u号为—》0:正数 1:负数
其他位:数据位
正数:原码
负数:补码
补码=反码+1
100 signed short
内存:0000 0000 0110 0100
-100
原码:1 000 0000 0110 0100
反码: 111 1111 1001 1011
补码: 111 1111 1001 1100
内存:1111 1111 1001 1100

3)整形数据的溢出
Unsigned short 最大值 + 1?
最大值+1=最小值
最小值-1=最大值

  1. 字符类型
    char 字符类型 1个字节
    ‘a’ ‘b’ ‘KaTeX parse error: Expected 'EOF', got '#' at position 4: ’ ‘#̲’ ‘?’…… ‘a’ ‘z’…
    转义字符:
    ‘\n’
    ‘\r’
    ‘\v’
    ‘\t’
    usigned char:无符号字符型
    最大值:1111 1111—》2^8-1=255
    最小值:0000 0000—》0
    signed char:有符号字符型
    最大值:0111 1111—》2^7-1=127
    最小值:1000 0000—》-2^7=-128
    ASCII:转换标准:字符和整形数据之间的转化标准
    ‘a’—》97—》0110 0001
    ‘\0’—》0—》0000 0000
    ‘0’—》48—》0011 0000
    char类型本质是一个整形
  2. 浮点数类型
    用来表示小数的数据类型
    单精度浮点型:float
     精度范围:6-8位
     内存占的字节数:4
     IEEE规定:float类型在内存中以符号位(1bit)、指数位(8bits)、尾数位(23bits)的方式存储
    6.25 float
    符号位:0
    110.01(小数部分0.252=0.5取整数部分直到只有整数部分)—》1.10012^2(科学计数法,二进制就是2的次方,十进制就是10的次方)
    指数位:127+2=129—》1000 0001
    尾数位:10010000000000000000000
    内存:0100 0000 1100 1000 0000 0000 0000 0000
    0xc0c8oooo

双精度浮点型:double
 精度范围:12-16位
 内存中占的字节:8
 IEEE标准规定:double类型在内存中符号位(1bit),指数位(11bit),尾数位(52bit)方式存储
6.25
110.10—》1.1001*2^2
符号位:0
指数位:1023+2=1025—》100 0000 0001
尾数位:1001 0000 0000 0000 0000 00000000000000000000000000000000
内存:0100 0000 000110010000 0000 0000 000000000000000000000000000000000000

注意:浮点型数据在内存中存储时,可能存在精度损失

5.缺省类型(空类型 void)
函数的形参和返回值,不传递函数、不返回数据
指针:void*—》万能指针

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值