c基本知识
c基本知识
1.数据类型相关的关键字
用来存储数据
- char字符1字节
- int 整型4字节
- short短整型2字节
- long长整型4/8字节
- float 单精度4字节
- double 双精度8字节
- struct 结构体
- union 共用体
- enum 枚举
- signed 有符号
- unsigned 无符号
- void 空类型
2.存储相关关键字
- register 寄存器变量
- static 静态变量
- const 只读变量
- auto 自动变量
- extern 声明外部变量或函数可用
3.控制语句相关的关键字
- if else
- switch break continue
- for
- while default
- do
- switch case goto
4.其他关键字
- sizeof 测量类型的大小
- typedef为已有的类型取个别名
- volatile 强制访问内存
%d %hd %ld 十进制有符号整数
%u %hu %lu 十进制无符号整数
%x, 以十六进制表示的整数
%o 以八进制表示的整数
%f float 型浮点数 %lf double 型浮点数
%e 指数形式的浮点数
%s 字符串 %c 单个字符
%p 指针的值
%#x 十六进制 0x11111
%3d 占 3 个位宽 如果实际输出位数超过 3 格式无效
%03d %-3d %5.2f
二进制,每一位只能存放 0 或 1 以 0b 开头 c 语言不支持直接输出二进制
八进制,每一位存放范围:0~7 以数值 0 开头 比如:0123 输出格式%o
十进制,每一位存放范围:0~9 比如:123 输出格式%d %u %hd %hu %ld %lu
十六进制,每一位存放范围:0~9 a~f 以 0x 开头 比如:0x123 输出形式%x
原码反码补码
1、原码:就是数值的二进制 直接表现形式
无符号数:10 原码 0000 1010
有符号数:
正数:+10 原码 0000 1010
负数:-10 原码 1000 1010
2、反码:
无符号数:10 原码 0000 1010 == 反码 0000 1010
有符号数:
正数:+10 原码 0000 1010 == 反码 0000 1010
负数:反码 等于 原码的符号位不变 其他位按位取反
-10 原码 1000 1010 == 反码 1111 0101
3、补码:
无符号数:10 原码 0000 1010 == 反码 0000 1010 == 补码 0000 1010
有符号数:
正数:+10 原码 0000 1010 == 反码 0000 1010 == 补码 0000 1010
负数:补码 = 反码+1 不在乎符号位
-10 原码 1000 1010 反码 1111 0101 补码:1111 0110
总结
无符号数、有符号正数:原码=反码=补码
负数:反码 为符号位不变 其他位按位取反 补码:反码+1
任何数据在计算机中以补码存储。
无符号数、有符号正数 在计算机中按原码存储。
负数 在计算机中 按补码存储。