概述
数据类型与运算符
一、数据类型
C语言32个关键字
duto break case char const
continue default do double
else enum extern float for
goto if int long register
return short signed sizeof static
struct switch typedef unsigned union
void volatile while
九种控制语句
if()~else~
for()~
while()~
do~while()
continue
break
swich
goto
return
34种运算符
二、数据类型的定义
1、数据类型的定义
变量的定义:数据类型 变量名【标识符】
变量的赋值:变量名 = 值;
数据类型 变量名【标识符】 = 值
2、标示符的命名规则:
1、字母、数字、下划线
2、不能以数字开头
3、见名知义
4、不能和同一函数内的其他标示符重复
5、不能使用C语言关键字
6、区分大小写
3、常量的定义:
1、const 数据类型 常量名
2、【宏定义】#deifne 常量名 值
注意:
1、通过#define 定义的常量 是根据值来匹配数据类型的
2、const 修饰的常量是不安全 可以通过指针来修改
4、各数据类型占的内存大小(32位操作系统下)
sizeof() //求出数据类型在内存中占的大小(Byte)
int value = sizeof(变量名)
int value = sizeof(数据类型)
int value = sizeof 数据类型
char【字符型】 1
short【短整型】 2
int【整型】 4
long【长整型】 4
float【单精度浮点型】 4
long long【长长整型】 8
double【双精度浮点型】 8
三、进制
1.十进制转二进制
除二反序取余法:将十进制数每次除以2 取出余数 按照结果倒叙依次获取结果
2.进制在程序中打印:
int a=10;//十进制中的10
int b=010;//八进制中的10 在程序中定义一个八进制数需要在数前面加上0区分
int c=0x10;//十六进制中的10在程序中定义一个十六进制数需要在数前面加上0x区分
int d=0X10;//十六进制中的10在程序中定义一个十六进制数需要在数前面加上0X区分
注意:在程序中没有办法表示一个二进制数
%u 将数据按照无符号十进制整数输入或输出
%d 将数据按照十进制输出
%o 将数据按照八进制输出
%x 将数据按照十六进制小写输出
%X 将数据按照十六进制大写输出
3.原码、反码、补码
一个有符号的整型数据可以分为两部分:一部分是符号位、一部分是数字位
无符号数据类型只包含数字位部分
signed int a= 1986(有符号标识 signed可以不用写)
二进制:11111000010
1986原码:0000 0000 0000 0000 0000 0111 1100 0010
-1986原码:1000 0000 0000 0000 0000 0111 1100 0010
1986反码: 0000 0000 0000 0000 0000 0111 1100 0010
-1986反码:1111 1111 1111 1111 1111 1000 0011 1101
1986补码: 0000 0000 0000 0000 0000 0111 1100 0010
-1986补码:1111 1111 1111 1111 1111 1000 0011 1110
1986 - 1986:1 0000 0000 0000 0000 0000 0000 0000 0000
//溢出:在数据进行操作的时候会导致超出数据类型大小,会向前位进1,多于原始数据类型大小,会被系统自动舍弃 保留从后面开始数据类型大小的位数
//正数原码反码补码相同
//负数原码最高位变为1
//负数反码,其原码最高位不变,其余位取反
//负数补码是其反码加1
练习:用生辰年份年去生辰日期
1992
-326
1、将10进制转化为二进制
1992 :0000 0000 0000 0000 0000 0111 1100 1000
-326 :0000 0000 0000 0000 0000 0001 0100 0110
2、加符号位将数据变为原码
1992 :0000 0000 0000 0000 0000 0111 1100 1000
-326 :1000 0000 0000 0000 0000 0001 0100 0110
3、转化为反码
1992 :0000 0000 0000 0000 0000 0111 1100 1000
-326 :1111 1111 1111 1111 1111 1110 1011 1001
4、将反码+1转化为补码
1992 :0000 0000 0000 0000 0000 0111 1100 1000
-326 :1111 1111 1111 1111 1111 1110 1011 1010
5、计算补码
1992 :0000 0000 0000 0000 0000 0111 1100 1000
-326 :1111 1111 1111 1111 1111 1110 1011 1010
结果 : 1 0000 0000 0000 0000 0000 0110 1000 0010
6、将数据转化为10进制
110 1000 0010
2+128+512+1024 = 1666
四、输出和输入
输出字符的两种方式:
1、printf("%c",变量|ASC码)
2、putchar(字符|变量|ASC码)
putchar(a)
输入字符的两种方式:
1、scanf("%c",&变量)
2、getchar(字符|变量|ASC码)
a = getchar()
最后
以上就是高大铃铛为你收集整理的day04 数据类型与运算符数据类型与运算符的全部内容,希望文章能够帮你解决day04 数据类型与运算符数据类型与运算符所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复