常量和变量及数据存储

一、常量与变量

常量就是值不能被改变的量,如10、5.6、’a’、宏定义定义的常量等。(#define 宏命 常量    #define PI 3.14)

变量就是值可以被改变的量,就是在内存开一块空间,用于数据的存储。(注意要先定义再使用)。

二、变量定义的格式:

   数据类型 变量名

   数据类型:根据实际需求自己选择数据类型关键字。

   变量名:内存空间的名称,自定义,符合标识符的命名规范。

   标识符的命名规范:1、数字、字母、_、$

                      2、不能以数字开头

                      3、不能和关键字重读

                      4、见名知意      单词   拼音   

三、变量的分类:

   按照定义的位置分为:局部变量和全局变量

   局部变量不赋值时里面存储的是不确定的值,定义在{}内

   全局变量不赋值时是0,定义在所有的{}之外就是全局数据区

四、使用变量:

   1、赋值符号 =

   2、输入函数 scanf

五、输出函数

   输出函数printf - - -  stdio.h

   Printf输出””里面的内容

   “”里面的内容:1、普通的字符:原样输出   2、转义字符:\+字母 具有特殊功能的字符。3、格式控制符:%---该读内存或者运算

六、输入函数

   输入函数scanf---stdio.h

   scanf接受输入的数据写入到内存中。

   scanf(“格式控制符”,内存地址)://内存地址 ---- &变量名

//地址决定起始位置,格式控制符决定一次性写多少空间

   使用scanf写数据:前提:定义变量后再输入。

七、进制转换

   常用进制:二进制、八进制、十进制、十六进制

   二进制数据:存储到内存中的,操作寄存器每一位上的数字0~1。

   八进制:了解     每一位上0~8。

   十进制:0~9。

   十六进制:数值表示或者地址 每一位上的0~9 a b c d e f

   进制的前缀:十进制          没有前缀

                八进制          前缀0

                十六进制        前缀0X

                二进制          前缀0B

   其他进制的格式控制符:

              short     int      long       long long

十进制     %hd       %d       %ld          %lld

八进制     %ho       %o       %lo          %llo

十六进制   %hx       %x       %lx          %llx

二进制没有格式控制符

%#x-----显示前缀

八、进制转换规则

   a、十进制转其他进制

   b、其他进制转十进制

   c、十进制快速转二进制

   d、 二进制、八进制、十六进制之间的转换

  1. 十进制转其他进制:除以进制数的其余数,直到商为0,将余数逆序排列

  1. 其他进制转十进制

权重

          

           十进制权重:     3       4      5     6

                           1000    100    10    1

                           10^3    10^2   10^1  10^0

                   

           八进制权重:    0 1    4    1

                           8^2  8^1  8^0

                          

           十六进制权重:  0x 6      1

                             16^1   16^0

                           

           二进制权重:    0b0   1   1   0   0   0   0   1

                           2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0

                          

           规则:

              相应位上的数字*权重,相加             

              0141  = 1*8^2 + 4*8^1 + 1*8^0 = 64+32+1 == 97          

c、十进制快速转二进制

加法:靠近小的权重, > 小的权重

                  31  --- 32 16 8  4  2 1

                            √  √  √  √ √

                            1  1  1  1 1

                           

                  51 --- 64 32 16 8  4  2 1

                           √  √        √ √

                           1  1  0  0  1 1

                          

              减法:数值比较靠近大的权重, < 大的权重

                  31  --- 32 16 8  4  2 1

                         1  0  0  0  0 0

                         0  1  1  1  1  1

                        

              278:

                  512 256 128 64 32 16 8  4  2 1

                      √             √     √  √

                     1    0   0  0 1 0   1  1 0

                    

              500:

                  512 256 128 64 32 16 8  4  2 1

                   0   1    1   1  1  1 1  1  1 1 --- 511

                  0   1    1   1  1  1 0  1  0 0 --- 500

                 

              常用的0~16必须会

                  0 --- 0000

                  1 --- 0001

                  2 --- 0010

                  3 --- 0011

                  4 --- 0100

                  5 --- 0101

                  6 --- 0110

                  7 --- 0111

                  8 --- 1000

                  9 --- 1001

                  10 --- 1010

                  11 --- 1011

                  12 --- 1100

                  13 --- 1101

                  14 --- 1110

                  15 --- 1111

                 

d、二进制、八进制、十六进制之间的转换

3位二进制 == 1位八进制   (4 2 1)

           4位二进制 == 1位十六进制  (8 4 2 1)

          

           十六进制和二进制转换

           0xaf6  ===  0b101011110110        

           0b0000100101001010 == 0x094a

          

           八进制和二进制进行转换

           0345  ===  0b011100101

           0b000 000 100 101 001 010  === 0004512

九、数据存储

   存储单位:字节 位      1个字节=8位

   一个十六进制=4位二进制      一个字节=8位二进制

十、正数和负数的二进制表示形式

   数据存储一律采用补码存储        原码   反码   补码

   正数:原码=反码=补码

   负数:

原码:就是一个数据本身的二进制表示形式 ,从原码上看能够看出一个数据是多少

    反码:保持符号位不变其他位取反

    补码:反码 + 1  , 最终粗才能入到计算机里面的二进制数据

十一、数据溢出

数据类型有范围,超出这个范围就存不下

数据溢出遵循环形转换规律

计算规律:数值如果是正向超出就 - 一圈的数据个数  看是不是在数据类型的范围内。

    如果在就找到对应的数值

    如果不在继续 - 一圈的数据个数 直到找到一个数据在在数据类型的范围内。           

    数值如果是负向超出  + 一圈的数据个数  看是不是在数据类型的范围内。

如果在就找到对应的数值

    如果不在继续 + 一圈的数据个数 直到找到一个数据在在数据类型的范围内。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值