C语言基础一:(进制转换,ASCII,词法符号,关键字,标识符,运算符)

学习一门编程语言是一条艰辛与快乐共存的一条路,如今选择了这条路,就应该一直走下去,了解C语言的基础知识,要先对C语言有一个大概的认识,下面我介绍一下C语言的基础。

一.进制转换

十进制转二进制

短除法:除二倒取余

拆分法:拆成2的次方和 // 66 = 64 + 2 = 2^6 + 2^1 = 1000010

计算器:程序员模式

二进制转十进制

将有1的位求和

101100 -》=32+8+4=44

八进制转二进制:

八进制以数字0开头

053 = 》101 011

二进制转八进制

从低位开始,3位二进制为一组转化为1位8进制,不够补零

10110101=》010 110 101 =》0265

十六进制转二进制

一位16进制用4位2进制来表示(8421),不够补零(十六进制0x开头)

0xab => 1010 1011

0x3e7 => 0011 1110 0111

二进制转十六进制

从低位开始,每4位二进制为1组,转化为1位16进制,不够补零

1100 0110=》0xc6

二.ascii

ASCII

'\0' (字符串结束标志) 0

'\n' (换行) 10

' '(空格) 32

字符0 48

字符9 57

'A' 65

'Z' 90

'a' 97

'z' 122

大写字母+32 = 小写字母

小写字母-32 = 大写字母

'0' - 48 = 0

字符0 - 48=数字0

三.词法符号

概念:由若干字符组成的有意义的最小语法单位

分类:关键字(32)、标识符、运算符、分隔符、标点符号

四.关键字

概念:由系统预定义的具有有特殊功能的词法符号

分类

存储类型:auto(自动型一般沈略) static(静态外部应用) extern(外部引用除了本文件外的东西) register(计算器类型)

数据类型:char(字符型一个字节) short(短整型两个字节) int(整型4个字节) long (长征性4个字节) float(单精度浮点型4个字节) double(双精度浮点型8个字节) signed unsigned

构造类型:struct(结构体:用户自定义) union(共用体) enum (枚举)

选择结构:(if else ) , (switch case default)

循环结构: for , while, do while, goto ,循坏控制语句: break 跳出循坏 continue退出本次循坏只能退一次

其他:void(空类型不能修饰变量可以修饰函数也可以修饰指针,修饰函数表明函数没有返回 值,修饰指针表示任意类型的指针(void *p)) typedef(重定义:类型的重定义) volatile(防止编译器优化)

const(常量化 (只读修饰不能修改),相当于readonly只读) sizeof(计算数据所占空间大 小)、return(返回值)

五.标识符的命名规则

命名规则:

由数字、字母、下划线组成

开头不能是数字

不能和关键字重复

见名知义

六.运算符

算术运算符

逻辑运算符

位运算符

关系运算符

赋值运算符

三目运算符(条件运算符)

算术运算符

+ - * / % ++ --

/:整数相除,向下取整

int a=5/2; //a=2

float a=5/2; //a = 2.000000

float a=5/2.0; //a=2.500000

%:只能用于整数运算

10%3=1

123

获取个位3:123%10

获取十位2:123/10%10 1) 123/10==12 2)12%10 == 2

获取百位1:123/100

逻辑运算符

&&(逻辑与) ||(逻辑或) !(逻辑非)

运算法则:

&&:

全真为真,一假则假

||:

一真则真,全假则假

!:

非真则假,非假则真

截断法则(掌握):

在逻辑与运算中,当前面的表达式为假,则后面的表达式不执行

在逻辑或运算中,当前面的表达式为真,则后面的表达式不执行

位运算符

&(位与) |(位或) ^(异或) ~(取反) << >>

运算法则:

&:全1则1,有0则0

例:0xab & 0x3c

1010 1011

0011 1100

0010 1000

|:有1则1,全0则0

0xab | 0x3c

1010 1011

0011 1100

1011 1111

^:不同为1,相同为0

0xab ^ 0x3c

1010 1011

0011 1100

1001 0111

~:按位取反,1变0,0变1

原码 反码 补码

正数 本身 本身 本身

负数 本身 除符号位其他按位取反 反码+1

~(-12)

-12原码:1000 0000 0000 0000 0000 0000 0000 1100

-12反码:1111 1111 1111 1111 1111 1111 1111 0011

-12补码:1111 1111 1111 1111 1111 1111 1111 0100

~ : 0000 0000 0000 0000 0000 0000 0000 1011

=11

<<左移

左移几位,右边补几个0

8<<2=32

-5<<3=-40

-5原码:1000 0000 0000 0000 0000 0000 0000 0101

-5反码:1111 1111 1111 1111 1111 1111 1111 1010

-5补码:1111 1111 1111 1111 1111 1111 1111 1011

<<3 : 1111 1111 1111 1111 1111 1111 1101 1000

取反码 1000 0000 0000 0000 0000 0000 0010 0111

+1 1000 0000 0000 0000 0000 0000 0010 1000 =-40

>>右移

右移几位,左边补几个符号位(正数0,负数补码前补1)

8>>2 =2

12>>3=1

置位问题:

置零公式、置一公式

置一公式:将一个数a的n位置1:a|(1<<n) (n从0开始)

例:将4的1位置1:

4|(1<<1)

置零公式:将一个数a的n位置0:a&(~(1<<n) ) (n从0开始)

例子:将6的1位置0

6&(~(1<<1))

关系运算符

> < >= <= == !=

10<=x<=60 // 错误

x>=10 && x<=60//正确

赋值运算符

= += -= *= /= %=

a+=3;//a=a+3;

a*=3;//a=a*3;

条件运算符

三目运算符

格式:表达式1?表达式2:表达式3

执行顺序:首先判断表达式1是否成立,如果成立,就执行表达式2,不成立就执行表达式3

int a=3;

int b=5;

int c=a>b?a++:b++;//c=b++; c=5,b=6

运算符优先级

单目运算符! ~ ++ --

算术运算符* / % + -

移位运算符<< >>

关系运算符< <= > >= == !=

位与运算符&

异或运算符^ |

逻辑运算符&& ||

条件运算符?:

赋值运算符= += *= /= %= ...

口诀:单算移关与异或逻条赋

从右向左单条赋

标点符号:分号,逗号,中括号,大括号,小括号

分隔符:换行 TAB 空格

变量:

概念:在程序运行中其值会发生变化的量

定义格式:存储类型 数据类型 变量名

int a;

名称 大小(字节) 取值范围(了解)

char 字符型 1字节 -2^7 ~ 2^7-1

short 短整型 2字节 -2^15 ~ 2^15-1

int 整形 4字节` -2^31 ~ 2^31-1

long 长整型 4字节 -2^31 ~ 2^31-1

float 单精度浮点型 4字节 有效数据位数6-7位

double 双精度浮点型 8字节 有效数据位数15-16位

变量的分类:

区别(掌握)

局部变量 全局变量

定义位置: 定义在函数体内部的变量 定义在函数体外部

初值: 未初始化,值为随机值 未初始化,值为0

存储位置: 栈区 全局区

生命周期: 同所在函数共存亡 同整个程序共存亡

作用域: 作用于函数体内部 作用于整个程序

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

埃菲尔上的铁塔梦@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值