经过了两天的学习,我们要及时的回顾一下学的知识,今天主要说一些基础的知识,在之前的博客中也提到了一些linux相关的知识,这些基础知识比较琐碎,面试中也比较容易遇到,这里只是说一点,之后每遇到一点琐碎内容,都补充到本章中。
计算机基本结构
冯.诺依曼模型
计算机硬件5部分构成
输入设备,输出设备,存储器,运算器,控制器
MMU 内存管理单元
机器语言—》汇编语言—》高级语言
程序设计步骤
编辑(vi)—》编译(gcc),链接(ld)—》执行,调试
数据的表示
数值型数据和非数值型数据
数值数据的表示
十进制,二进制,十六进制,八进制
八进制以0开头,十六进制以0x开头。
2—》10进制
1010=1*2^3+0*2^2+1*2^1+0*2^0=10
16--》10
0xa6f=a*16^2+6*16^1+f*16^0=2671
原码 反码 补码
| 正数 | 负数 |
原码 | 00000101 | 10000101 |
反码 | 00000101 | 11111010 |
补码 | 00000101 | 11111011 |
负数:负数第一位为符号位。补码—》反码加1
-127 原码 1111 1111
反码 1000 0000
补码1000 0001
第一位为符号位,那么-128的原码是多少?
-128(特殊)无原码和反码,补码为1000 0000
字符数据通过ASCII码进行表示。
Man ASCLL 查询linux自带的ASCII码表
常用的ASCII:
字符0,对应48
A->65(ASCII)
a-->97(小写与大写差32)
大写字母+空格(32)=小写字母
这里会出题
例:u=’ ’+’B’
那么u是多少,也就是空格的ascII值+B的ASCII值=32+66=98
‘0’为字符0—》48(ASCII)
0=’0’-48 //字符0转化为数字0
GCC编译器
gcc -o hello hello.c(gcc hello.c -o hello -Wall)
-o输出可执行文件
./hello 查看输出结果
gcc test.c -wall 不指定默认生成a.out
目前使用的程序调试__FILE__,__LINE__,__FUNCTION__,
实现代码跟踪调试。文件名/行号/函数名(%s,%d,%s)