标签:指针 精确 都对 两种 重复 无符号数 ble short \n
一、数据类型的定义
1)变量
1.变量的定义:
数据类型 变量名【标识符】
2.变量的赋值:
变量名 = 值;
3.变量定义与赋值
数据类型 变量名【标识符】 = 值
标示符的命名规则:
1、字母、数字、下划线
2、不能以数字开头
3、见名知义
4、不能和同一函数内的其他标示符重复
5、不能使用C语言关键字
6、区分大小写
2)常量的定义:
1、const 数据类型 常量名
2、【宏定义】#deifne 常量名 值
注意:
1、通过#define 定义的常量 是根据值来匹配数据类型的
2、const 修饰的常量是不安全 可以通过指针来修改
二、进制:
(一)二进制:
1.二进制逢二进一,
2.所有的数组是0、1组成
1)十进制转二进制:
除二反序取余法:1.将十进制数每次除以2
2.取出余数
3.按照结果倒叙依次获取结果
2)二进制转十进制:
权值法: 1.将二进制数各个位数从0位开始乘以2的N幂
2.将各个位数的结果相加
(二)八进制:
1.八进制逢八进一
2.所有的数组是0到7组成
1)十进制转八进制:
除八反序取余法:1.将十进制数每次除以8
2.取出余数
3.按照结果倒叙依次获取结果
(三)十六进制:
1.十六进制逢十六进一,
2.所有的数组是0到9和A到F组成 字母不区分大小写
1)十进制转八进制:
除十六反序取余法:1.将十进制数每次除以16
2.取出余数
3.按照结果倒叙依次获取结果
*进制在程序中打印(printf)
%d 将数据按照十进制输出
%o将数据按照八进制输出
%x将数据按照十六进制小写输出
%X将数据按照十六进制大写输出
注意:
在程序中没有办法表示一个二进制数
三、原码、反码、补码
一个有符号的整型数据可以分为两部分
1.一部分是符号位,一部分是数字位
3.无符号数据类型只包含数字位部分
注意
溢出:在数据进行操作的时候会导致超出数据类型大小,会向前位进1,多于原始数据类型大小,会被系统自动舍弃 保留从后面开始数据类型大小的位数
四、sizeof()
求出数据类型在内存中占的大小(BYTE)
int value =sizeof(变量名);
int value = sizeof(数据类型) sizeof 数据类型
注意:根据32位操作系统获取的数据类型大小
char(字符型)【1】<short(短整型)【2】<=int(整型)【4】|float (单精度浮点型)【4】|long(长整型)【4】<long long(长长整型)【8】|double(双精度浮点型)【8】
五、输出和输入:
1)输出字符的两种方式:
1、printf("%c",变量)
2、putchar(字符)
2)输入字符的两种方式:
1、scanf("%c",&b变量)
2、变量=getchar()
六、数据类型:
1)字符型:
1.char 用于存储一个单一的字符
2.在格式化输入printf("%c",变量)通过占位符%c来接收的
3.每一个char类型都对应在ASCII中有具体的值
例如:数字【0】对应的ASCII值为48
字母【A】对应的ASCII值为65
2)浮点型:
1.float 用于存储带有小数的数据
2.在格式化输入printf("%f",变量)通过占位符%f来接收的
3.double 用于存储带有小数的数据 数据长度比float更长
注意:因为将小数转化为二进制时不是一个精确的值,所以浮点型都会有数据偏差
3)转义字符:
计算机会使用一些字符来完成程序设计,如果在编程中想使用这些字符的本意,需要通过【\】来转义
注意:想在控制台中输出% 需要使用【%%】
课后练习题(答案在后面)
1.八进制必须以_____开头,十六进制必须以_______开头。
2.标识符只能由_______、_______和_______组成。
3.在计算机中的进制表现形式有三种,分别是_____、 _______、 ________。
4.C 语言提供了 sizeof 运算符,该运算符主要用于________。
5.二进制和八进制相互转换
5.1 111 010 101 011 转换为八进制后结果为?
5.2 76321 转换为二进制结果为?
6.二进制和十六进制相互转换
6.1 1111 1010 1101 1011 转换为十六进制后结果为?
6.2 a6b2f1 转换为二进制结果为?
7.请写出-8的原码、反码、补码
8.计算如下程序结果
8.1short a = 0xfffe;
printf("%d\n", a); //结果为多少?
8.2unsigned short a = 0xfffe;
printf("%u\n", a); //结果为多少?
8.3short a = 0x7fff + 2;
printf("%d\n", a); //结果为多少?
8.4unsigned short a = 0xffff + 5;
printf("%u\n", a); //结果为多少?
答案
1.0
2.0x
3.数字、下划线、字母
4.求出数据类型在内存中占的大小
5.1 7253
5.2 111 110 011 010 001
6.1 f9db
6.2 1010 0110 1011 0010 1111 0001
7 .原码: 1000 0000 0000 0000 0000 0000 0000 1000
反码:1111 1111 1111 1111 1111 1111 1111 0111
补码:1111 1111 1111 1111 1111 1111 1111 1000
8.1 65534
8.2 65534
8.3 -32767
8.4 4
标签:指针 精确 都对 两种 重复 无符号数 ble short \n
原文地址:https://www.cnblogs.com/Riunv/p/10668240.html