2022.3.17
//2022.3.17
//有符号整型:
// signed: 有符号(超级不常用,通常省略); int a = 10;
// : int 类型: %d 4 字节
// int 名 = 值;
// short 类型: %hd 2 字节
// short 名 = 值; short s1 = 3;
// long 类型 %ld 4 字节
// long 名 = 值, long len = 6;
// long long 类型: %lld 8 字节
// long long ,名 = 值; long long
// 无符号整型:
// unsigned: 无符号 只表示数据量,而没有方向(没有正负)
// : int 类型: %u 4 字节
// unsigend int 名 = 值;
// unsigned int a = 40;
// short 类型: %hu 2 字节
// unsigend short 名 = 值;
// unsigend short s1 = 3;
// long 类型 %lu 4 字节
// unsigend long 名 = 值,
// unsigend long len = 6;
// long long 类型: %llu 8 字节
// unsigend long long ,名 = 值; long long
// char 字符类型:
// 存储一个字符。‘A’、‘a’、‘%’、‘#’、‘0’
// 格式匹配符: %c
// ‘A’ : 65
// ‘a’ : 97
// ‘0’ : 48
// ‘\n’: 10
// ‘\0’: 0
// 转义字符: ‘\’ 将普通字符转为 特殊意。将特殊字符转为本身意
// ‘\n’和‘\0’
// 实型(浮点数,小数):
// float: 单精度浮点型, 4字节
// float = 4.345
// double : 双精度浮点型 8字节 【默认】
// unsigned float v1 = 4.345; 无符号的 float 数据
// unsigned double v2 = 5.678; 无符号的 float 数据
// printf("n = %08.3f\n", n);
// 输出的含义为: 显示8位数(包含小数点),不足8位用0填充,并且保留3位小数,对第四位小数四舍五入,
// 实型(浮点型):float、 double
// 实型变量也可以称为浮点型变量,浮点型变量是用来存储小数数值的,在 C 语言中,浮点型变量
// 分为两种:单精度浮点数(flaot)、双精度浮点数(double),但是double 型变量所表示的浮点数,
// 比float 型变量更精确
// 由于浮点型变量是由有限的存储单元组成的,因此只能提供有限的有效数字,在有效位以外的数字
// 将被舍去,这样可能会产生一些误差,
// 不以f 结尾的常量是 double 类型,以f 结尾的常量(如3.14f)是float 类型
//
// 进制转化
// 十进制转2进制, ----除2反向取余法。
// 十进制转8进制, ----除8反向取余法。
// 十进制转16进制, ----除16反向取余法。
// int a = 56, ---111000
// int b = 173 ---10101101
// 2进制转10进制。
// 2^10 = 1024
// 2^9 = 512
// 2^8 = 256
// 2^7 = 128
// 2^6 = 64
// 2^5 = 32
// 2^4 = 16
// 2^3 = 8
// 2^2 = 4
//
// 8进制:
// 8进制转10进制。
// 定义8进制数语法;
// 056: 零开头,每位数0~7之间, ----46
// 0124: ----84
// 8进制转2进制,
// 按421码将每个八进制位展开。
// 056: 5--》 101. 6--》 110.
// 101110
// 05326: 5 --》 101. 3-- 》 011. 2-- 》 010. 6--》 110
// 2进制转8进制:
// 1 010 111 010 110: 010726
// 自右向左,每3位一组,按421码转换,高位不足三位补0
// 16进制:
// 语法: 以0x 开头,每位 取 0-9/A-F/a-f
// A -- 10
// B -- 11
// C -- 12
// D -- 13
// E -- 14
// F -- 15
// 16 -- 10;
// 0x1A; 16+10 = 26
// 0X13F: 15+3x16+256
// 16 -- 2:
// 0x1A: 00011010
// 0x13F: 000100111111
// 2 -- 16:
// 0001 0011 1111:
// 自右向左,每4位一组,按8421码转换,高位不足三位补0
// 总结:
// int m = 0x15F4;
// int n = 345;
// int var = 010011; // 不允许,不能给变量直接复制, 二进制数据
// 输出格式:
// %d %u %o(8进制) %x(16进制) %hd %hu %ld %lu %lld %llu %c %f %lf
// %d(十进制的有符号整型)
// %u(十进制无符号整型)
// %c(字符型)
// %s (字符串)
//
// 存储知识:
// 1 bit位 就是一个 二进制位
// 一个字节 1B = 8bit位
// int a = 10 --》 1010
// 1KB = 1024B
// 1MB = 1024KB
// 1GB = 1024MB
// 1TB = 1024GB
// char ch = 'A';
//
// 源码反码补码:【了解】
// 源码:
// 43 -> 00101011
// -43 --> 10101011
// 反码:
// 43 => 00101011
// -43 --> 10101011
// 11010100
// 补码:(现今计算机采用的存储形式)
// 43 -> 00101011 : 正数不变
// -43 --> 11010101 : 负数,最高位表符号位, 其余取反+1
//
// 43-27 ==》 43 + -27
// 人为规定: 10000000 --》 -123
// --------------------------------------------------------------------------
// char类型:1字节 8个bit位,数值位有7个。
// 有符号: -2¯7 --- -2¯7-1 == -2¯(8-1) -- 2(8-1) -1
// --》 -128 ~ 127
// 无符号: 0 ~ 2^8 -1
// --》 0~255
// 不要超出该数据类型的存储范围
// short类型: 2字节
// 有符号:-2^15 --- 2^15-1 == -2^(16-1) -- 2(16-1) -1
// --》 -128 ~ 127
// 无符号: 0 ~ 2^8 -1
// --》 0~65535
// int 类型: 4字节 -2^(32-1) -- 2^(32-1)-1
// 有符号:
// --》 -2147483648 ~2147483648
// 无符号:
// --》 0~4294967295
// long 类型: 4字节
//
// #include <stdio.h>
// int main()
// {
// char ch
// // 符号位溢出会导致数的正负数发生改变
// ch = 0x7f + 2; 因为:0x7f == 0111 1111 ==127,所以等价于 ch = 127 + 2
// printf("%d\n", ch);
// // 0111 1111
// // +2 后1000 0001 ,这是负数补码,其原码为 1111 1111,结果为 -127,
// // 最高位的溢出会导致最高位丢失
// unsigned char ch2;
// ch2 = 0xff+1; // 因为:0xff == 255 == 1111 1111.所以 等价于 ch2 = 255 + 1;
// printf("%u\n", ch2);
// // 1111 1111
// // +1 后 10000 0000,char 只有8位最高位的溢出,结果为0000 0000,十进制为0,
// ch2 = 0xff + 2; //因为: 0xff == 255 == 1111 1111.所以 等价于 ch2 = 255 + 2;
// printf("%u\n". ch2);
// // 1111 1111
// //+1后 10000 0001,char 只有8位最高位的溢出,结果为0000 0001,十进制为1,
// return 0;
//
//
// }
//
//
//
//
//#include <stdio.h>
//
//int main()
//{
// // 传统方式赋值
// float a = 3.14f; //或3.14F
// double b = 3.14;
//
// printf("a = %f\n", a);
// printf("b = %lf\n", b);
//
// // 科学法赋值
// a = 3.2e3f; // 3.2*1000 = 3200, e 可以写成E
// printf("al = %f\n", a);
//
// a = 1000e-3f; // 100*0.001 =0.1
// printf("a2 = %f\n", a);
// a = 3.1415926f;
// printf("a3 = %f\n", a); //结果为3.141593
//
// return 0;
//}
//#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>
//#include <string.h>
//#include <stdlib.h>
//#include <math.h>
//#include <time.h>
//
//int main(void)
//{
// float m = 3.145555;
// double n = 4.566545;
// printf("m = %5.2f\n", m); // 5代表占了几位数
// printf("n = %08.3lf\n", n); //8代表占了8位数,不足八位用空格填充,
//
// system("pause");
// return EXIT_SUCCESS;
//
//}
//#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>
//#include <string.h>
//#include <stdlib.h>
//#include <math.h>
//#include <time.h>
//
//int main(void)
//{
// int a = 0x2C; //等价 0x2c
// printf("10进制显示 a = %d\n", a);
// printf("8进制显示 a = %o\n", a);
// printf("16进制显示 a = %x\n", a);
//
// system("pause");
// return EXIT_SUCCESS;
//}
//#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>
//#include <string.h>
//#include <stdlib.h>
//#include <math.h>
//#include <time.h>
//
//int main(void)
//{
// int a =56;
// printf("10进制显示 a = %d\n", a);
// printf("8进制显示 a = %o\n", a);
// printf("16进制显示 a = %x\n", a);
//
// system("pause");
// return EXIT_SUCCESS;
//}
//#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>
//#include <string.h>
//#include <stdlib.h>
//#include <math.h>
//#include <time.h>
//
//int main(void)
//{
// char ch = 127 + 1; //-128 -- 127
//
// 01111111
// 1
// --------
// 00000000 -128
// printf("ch = %d\n", ch);
//
// system("pause");
// return EXIT_SUCCESS;
//}
//#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>
//#include <string.h>
//#include <stdlib.h>
//#include <math.h>
//#include <time.h>
//
//int main(void)
//{
// char ch = 125 + ; //-128 -- 127
//
// printf("ch = %d\n", ch);
//
// system("pause");
// return EXIT_SUCCESS;
//}
//
//2.8 类型限定符
// 限定符 含义
// extern 声明一个变量,exrern 声明的变量没有建立存储空间
// extern int a;// 变量在定义的时候创建存储空间
// const 定义一个常量,常量的值不能修改
// const int a = 10;
// Volatile 防止编译器优化代码
// register 定义寄存器变量,提高效率,register 是建议型的指令,
// 而不是命令型的指令,如果 CPU 有空闲寄存器,那么
// register 就生效,如果没有空闲寄存器,那么register 无效,
// 2.9 字符串格式化输出和输入
// 2.91 字符串常量
// 1.字符创是内存中一段连续的 char 空间
更多推荐
2022.3.17
发布评论