一.编程语言与解释语言
1.程序的执行
a.解释:借助一个能试图理解程序的程序,使计算机按要求执行你自己写的程序
b.编译:将所写程序翻译为机器语言写的程序,使计算机按要求执行你自己写的程序
2.两者的关系:
a.本质上无太大区别,个人喜好问题,都是程序的常用执行方式
b.语言本无解释/编译之分
c.各自的优势:
解释型语言有特殊的计算能力(以前认为慢,但后面随着硬件的发展,效率不是问题);编译型语言有确定的运算性能。
二.C语言发展历程
1.FORTRAN->BCPL->B语言(支持指针间接方式(灵魂))->C语言
2.C主要用于写操作系统,现在其他语言都是C-like语言,且C介于高级语言与汇编语言之间,兼备其优点
3.语言的能力/适用领域主要由库和传统决定
4.标准:C89->C95->C99(所有编译器都支持)->C11
三.原码,补码与反码
1.概念:
原码:最高字节的最高位为符号位(1为-,0为+),其余为该数的绝对值的二进制表示
反码:原码为正数:一样;原码为负数时: 除符号位外取反
补码:负数的补码为原码除符号位外取反+1,正数与原码一样
2.数在计算机中的表示
a.正数:二进制原码
b.负数:二进制补码
3.8位无符号二进制数:0000 0000 ->1111 1111 (0->255)
8位有符号二进制数: 原码所表示的十进制范围:-127->+127
反码所表示的十进制范围:-127->+127
补码所表示的十进制范围:-128->+127
注: -128的补码:1000 0000 无原码与反码
四.进制书写及在编程中的使用
1.题目中的书写(后缀表示法) ---不能用于编程
二进制数:(1010)2 or xxxx(B)
八进制数:(1010)8 or xxxx(O)
十进制数:(1010)10 or xxxx(D) (D可省略)
十六进制:(1010)16 or xxxx(H)
2.编程中记号(前缀表示法)
A.八进制数:以0开头,数值为0-7,如027;
十进制数:正常表示
十六进制数:以0x开头(0~f)或者0X开头(0~F),如0x17
B.在转移字符中的使用:
八进制数:’\ddd‘ ,使用方式:int i=’\111‘;
十进制数:即ASCII码
十六进制:’\xhh‘
五.进制转换
1.整数十进制转换为其他进制:除R取余法
2.实数(带小数)的进制转换: 分为整数和小数部分进行处理 小数部分:乘R取整法
例子: 将43.6125转换为二,八,十六进制数
0.6125*2=1.2250 -> 1
0.2250*2=0.45 ->0
0.45*2=0.9 ->0
0.9*2=1.8 ->1
0.8*2=1.6 ->1
0.6*2=1.2 ->1
so,43.6125==>101011.10011100(B) 注:保留多少位小数时,0舍1入
同理,可得到 53.471(O) , 2B.9C1(H)