c语言,二进制,八进制,十六进制,十进制以及进制转换;32个关键字

目录

一、计算机数据表示:

二、进制间的转换(二进制,八进制,十进制,十六进制):

三、非数值数据:(ASCII码)

四、关键字:(32个)


一、计算机数据表示:

1、首先我们需要知道的是计算机只能识别的就只有 1  0  这样的机器语言,简单的来说:

机器只能识别有电或者无电的情况,这两种情况就被设置成了1  0

 2、正因为如此,我们传入计算机的数据,符号,数字等等,这样一来我们的计算机才能识别我们的数据并接收或者存储,然后进行我们熟知的加减乘除运算等等;

        那么;数据是如何转换为0 1 数据的呢?

3、数值数据的表示:

        a、数值数据通常有四种表达方式:十进制,二进制,八进制,十六进制

        b、我们常见的数值都是以十进制的方式存在的,也就是我们常说的 0,1,2,3,4,5,6,7,8,9,1011这种逢十进一:满了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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值