目录
一、计算机数据表示:
1、首先我们需要知道的是计算机只能识别的就只有 1 0 这样的机器语言,简单的来说:
机器只能识别有电或者无电的情况,这两种情况就被设置成了1 0
2、正因为如此,我们传入计算机的数据,符号,数字等等,这样一来我们的计算机才能识别我们的数据并接收或者存储,然后进行我们熟知的加减乘除运算等等;
那么;数据是如何转换为0 1 数据的呢?
3、数值数据的表示:
a、数值数据通常有四种表达方式:十进制,二进制,八进制,十六进制
b、我们常见的数值都是以十进制的方式存在的,也就是我们常说的 0,1,2,3,4,5,6,7,8,9,10,11这种逢十进一:满了10就要像高位进一位的方式为十进制数,十进制数也最简单了;
4、 十 进 制:
( 0-9) :逢十进一(满了10就要像高位进一位变11,21,31.......);
基数:10 >>>基数:就和逢十进一概念差不多,是逢几进一它的基数就为几;
123 : 1*10^2 + 2*10^1 + 3*10^0 = 123 >>> 解释:1*10^2表示的是1乘10的2次方结果是等于 20 的;
5942:5*10^3+9*10^2+4*10^1+2*10^0 = 5942;
5、 二 进 制:
(0-1):逢二进一 例如:0b1011 >>>其中b(bin)代表二进制
基数:2
1011:将二进制的1011转换为10进制如下:
1*2^3+0*2^2+1*2^1+1*2^0 = 11;
6、 八 进 制
(0-7):逢八进一 例如:0354 >>>其中 0 (零)代表八进制
基数:2
354:将八进制的354转换为10进制如下:
3*8^2+5*8^1+4*8^0 = 236;
7、 十 六 进 制
(0-9,a,b,c,d,e,f)从a=10开始后面依次为11,12,13,14,15(f):
逢十六进一 例如:0x4b12 >>>其中 0x (零x)代表十六进制
基数:2
4b12 :将十六进制的 4b12 转换为10进制如下:
4*16^3+11*16^2+1*16^1+2*16^0 = 3858;
二、进制间的转换(二进制,八进制,十进制,十六进制):
1、以上二进制,八进制,十六进制的时候已经介绍了由二进制,八进制,十六进制转换为十进制的方法:
二进制,八进制,十六进制 >>> 十进制
2、十进制 转化为 二进制:
方法一:短除法
验算:0b1111011 : 1*2^6+1*2^5+1*2^4+1*2^3+0*2^2+1*2^1+1*2^0 = 123 ;
方法二:凑放法
凑放法:此方法转换二进制的话主要从2的几次方出发来配凑:
2^0 = 1 2^1 = 2 2^2 = 4 2^3 = 8
2^4 = 16 2^5 = 32 2^6 = 64 2^7 = 128
2^8 = 256 2^9 = 512 2^10 = 1024
>>>123 - 64 = 59 >>> 1*2^6 6代表从右往左第6位写1
59 - 32 = 27 >>> 1*2^5 第5位写1
27 - 16 = 11 >>> 1*2^4 依次类推
11 - 8 =. 3 >>> 1*2^3
3 - 0 = 3 >>> 0*2^2
3 - 2 = 1 >>> 1*2^1
1 - 1 = 0 >>> 1*2^0
结合上面于是得到:0b1111011
总结:此方法对于数字平方敏感或者习惯的用起来也速度快,主要效果明显许多
2.1 十进制 转换为 八进制:(得到二进制后就很容易了)
得到二进制0b1111011之后:八进制就是由3个一组3个一组的二进制组合而成;
高位缺少部分往左边加0即可:0b后面的1 >>> 011
即:二进制0b1111011 >>> 八进制0173
2.2 十进制 转换为 十六进制:(原理和上面一样)如图:
即:二进制0b1111011 >>> 十六进制0x7b
总结:十进制 转换为 二进制,八进制,十六进制转化为二进制都是同样的道理;
3、(当然也可以选择一步到位的方法)十进制转为八进制:
3.1短除法:
0173 (八进制)>>> (二进制)0b1111011
本人感觉要简单直观一些:
3.2:配凑法:很明显此法做显得不必要了,建议短除法;
8*^0 = 1 8^1 = 8 8^2 = 64
8^3 = 512 8^4 = 4096 8^5 = 3276
…………
4、十进制转换为十六进制:
0x7b >>> 0b1111011
这样看来,可不必要先转为二进制,转为进制较高的十六进制,一来减少了计算量不容易错,再转为二进制的时候也非常直观的;
三、非数值数据:(ASCII码)
1、ASCII:在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是有了ASCII编码,统一规定了常用符号用哪些二进制数来表示 ;到目前为止共定义了128个字符;
计算机中常用的ASCII码值:
'a' :97 到 'z' :122 '0' :48
'A' :65 到 'Z' :90 ' ' (空格):32
'9' :58 '\n' : 10 '\0 ' : 0
四、关键字:(32个)
1、标识符命名规则:
1.1、只能由字母,下划线和数字构成;
1.2、不能以数字开头;
1.3、不能与关键字重复。
2、(32个)关键字:现在这里只需要记住你定义的标识符不能和它们重名就行了,具体作用请看后续分晓:
2.1、数据类型:(8个)
int、char、short、long、float(单精度)、double(双精度)、signed、unsigned
2.2、存储类型:(6个)
static、extern、auto、register、const、volatile
2.3 语句类型:(12个)
if、else、while、for、goto、case、return、continue、break、default、do、swith
2.4:构造类型:(3个)
struct、union、enum
2.5:求字节类型:(1个)
sizeof
2.6:取别名类型:(1个)
typedef
2.7:空类型:(1个)
void