1.常量和变量及数据存储
(1)常量:值不能被改变
宏定义---定义常量
#define 宏名 常量
(2)变量:值可以被改变
变量就是在内存开一块空间,用于数据的存储
先定义在使用
变量格式:
数据类型 变量名;
数据类型:根据实际需求自己选择数据类型关键字
变量名:内存空间的名称,自定义,符合标识符的命名规范。
标识符的命名规范:
1、数字、字母、_、$
2、不能以数字开头
3、不能和关键字重复
4、见名知意 单词 拼音 a1 a2
变量的分类:
按照定义的位置分为局部变量和全局变量
局部变量不赋值里面存储的是垃圾值不确定。
定义在{}内
全局变量不赋值是0
定义在所有的{}之外就是全局数据区
使用变量:存储数据用
1、赋值符号 =
2、输入 scanf scanf(“%d”,&a);
3、输出 printf printf(“%d\n”,a);
(1)普通字符:原样输出"helloworld"
(2)转义字符:\+字母具有特殊功能的字符
(3)格式控制符:%---该读内存或者运算了
//面试题:以下字符是合法字符的是?
//A、'\901' B、'\xae' C、"a" D、'ar'
2.进制转换:
十进制、二进制、八进制、十六进制
1、进制前缀:
十进制:97 没有前缀
二进制:0b01100001 前缀0b
八进制:0141 前缀0
十六进制:0x61 前缀0x
2、(整形)进制的格式控制符:
short int long long long
十进制格式控制符: %hd %d %ld %lld
八进制格式控制符: %ho %o %lo %llo
十六进制格式控制符:%hx %x %lx %llx
二进制没有格式控制符
%#x-------显示前缀
二进制检查:补码 int a=补码;printf(“%d”,a);
3、进制转换规则:
十进制转其他进制:使用短除法,然后余数倒写,到零为止
其他进制转十进制:相应权重相乘然后相加
十进制快速转二进制:将权重列出使用加法或减法
二进制、八进制、十六进制之间的转换:3 位二进制=1 位八进制 4 位二进制=1 位十六进制
3.数据存储:
1、存储单位:字节 位
一个十六进制=4 位二进制
一个字节=8 位二进制
一个字节里可以存两个十六位进制数
2、数据的存储一律采用补码的存储
正数:原码=反码=补码
负数:原码:11100001
反码:10011110 反码=原码符号位不变其他取反
补码:10011111 补码=反码加一
补码出现的原因:区分正数和负数、计算机里只有加法器
面试题:int b=~7;b的值是多少?
4.数据溢出:
数据类型有范围,超出这个范围就存不下
数据溢出遵循环形转换规律
计算规律:数据如果是正向超出就减一圈数据个数 看是不是在数据类型的范围内。如果不在就在减一圈,直到落在数据范围内;
数据如果是负向超出就加一圈数据个数 看是不是在数据类型的范围内。如果不在就在加一圈,直到落在数据范围内;
例: short a= 40000;
printf(“%d”,a);//-25536
short: -32768~32767 40000-65536=-25536
short b=32768;//-32768 32768-65536=-32768
常量变量、进制转换、数据存储
最新推荐文章于 2024-08-22 17:27:46 发布