美文网首页
电商专业学习嵌入式软件开发第十七天

电商专业学习嵌入式软件开发第十七天

作者: 雨打梨花闭门寒 | 来源:发表于2017-02-08 19:42 被阅读0次
    • 预科第六天

    老师今天讲的内容有点多,需要消化一下,尤其是关于原码反码和补码的内容。有按照之前的笔记练习后面的内容,发现笔记中的代码也有敲错的,只不过不知道怎么改了,只能等后期学到之后再留意一下了。

    如果是double型数据进行输入,严格意义上讲需要使用%lf。
    scanf中输入回车的作用是代表数据输入完成而且\n会残留在输入缓存流中

    17.输入缓存流

    scanf会先到输入缓存流中找是否有想要的数据,如果输入缓存流为空或者没有匹配的数据,那么就会等待输入

    吸收输入缓存流里面的回车?
    1>
    char ch;
    scanf("%c",&ch);
    2>
    getchar()
    3>
    getc(stdin);//stdin表明去这个输入缓存流中拿东西;
    getchar和getc都是表明去这个输入缓存流里拿单个字符。
    

    18.getchar和putchar

    getchar会先到输入缓存流中找是否有想要的字符型数据,如果输入缓存流为空或者没有匹配的字符型数据,那么就会等待输入。

    #include<stdio.h>
    int main()
    {
        char ch;
        ch=getchar();
        putchar(ch);
        putchar('\n');
        return 0;
    }
    

    19.ASCII码表

    ‘0’:0
    ' ':32
    '0':48
    'A':65
    'a':97
    

    实际上字符类型的数据就是一个特殊的整数类型。
    也就是说字符类型可以转换为整型,整型0~254可以转换为字符类型。

    20.数据类型转换

    计算机只进行相同类型数据的算术,如果类型不一致,默认从精度低的向精度高的类型转换
    精度转换
    1>隐式转换:默认是从低精度转到高精度
    如果是精度高的转到精度地的,会造成数据丢失
    2>强制转换
    格式:(数据类型)变量/常量

    注意:强制数据类型转换不会更改数据原本的类型

    21.运算符

    计算机是以二进制的方式进行存储,是以数据的补码形式存储(想一想1+(-1)为什么为0),是以原码形式输出

    正号0
    负号1
    十进制13→二进制:
    13/2=6...1
    6/2=3...0
    3/2=1...1
    1/2=0...1
    十进制13→二进制:1101
    
     1+(-1)=0
     直接计算是错误的:
    补码 0000 0001
    补码 1000 0001
        -----------
    补码 1000 0010 =-2
    
    补码 1000 0001
    反码 1111 1110
    原码 1111 1111
     
    原码 0000 0001
    原码 1111 1111
     ----------
    原码 1111 1111
    
    反码 1000 0000
    补码 0000 0000 =0
    

    原码:就是数据的二进制形式,最高位为符号位,正号0符号1
    反码:正数的反码和原码相同,负数的反码符号位不变,后面的依次取反,0变1,1变0
    补码:正数的补码就是原码,负数的补码在反码基础上加1,负数的补码转换为反码时要减1

    计算机存储:
    原码——反码——补码

    计算机输出:
    补码——反码——原码

    1>算术运算符
    + — × / %
    %求余数,左右两边的数据必须是整数
    

    2>位运算符

    计算机规定:char数据类型
    0的二进制0000 0000

    -128的二进制1000 0000
    char精确表示范围-128~127,char最大表示范围255,char ch=255,结果为-1

    |:位或,只要有1就为1,否则就为0
    &:位与,只要有0就为0.否则为1
    ^:异或,只要不同就为1,相同则为0
    ~:取反,将每一位进行取反,0变1,1变0,符号位也要取反
    <<:左移,右边以0补全
    >>:右移,左边以符号位补全
    

    3>字节大小运算符
    sizeof(数据类型/变量名)
    4>关系运算符

    >,<,>=,<=,!=,==
    

    在计算机中把关系运算看成一个事件,事件如果为真就为1,为假就为0,这个地方产生的结果我们称为逻辑结果

    5>逻辑运算符
    &&:而且,事件1 && 事件2;如果两个事件都成立,整个事件才成立,结果为1,否则为0
    ||:或,事件1 || 事件2;只要有1个事件成立,整个事件就成立,结果为1,否则为0
    !:非,!事件,如果事件成立,那么整个事件就不成立,结果为0,否则为1

    逻辑运算符注意点:
    1)&&符号,如果第一个事件成立,就不会运算&&后面的运算
    2)||符号,如果第一个事件成立,就不会运算||后面的运算

    6>++ --

    前缀++:
        int num1=2;
        int result=++num1;//num1=num1+1,result=num1;
        printf("result=%d\nnum1=%d\n",result,num1);
    后缀++    
        int num1=2;
        int result=num1++;//result=num1,num1=num1+1;
        printf("result=%d\nnum1=%d\n",result,num1);
    前缀--:
        int num1=2;
        int result=--num1;//num1=num1-1,result=num1;
        printf("result=%d\nnum1=%d\n",result,num1);
    后缀--    
        int num1=2;
        int result=num1--;//result=num1,num1=num1-1;
        printf("result=%d\nnum1=%d\n",result,num1);
    

    7>赋值运算符(将右边的值赋值给左边)

    =,+=,-=,*=,/=,%=,|=,&=,^=,>>=,<<=
    

    8>三目运算符
    ?:事件?表达式1:表达式2;
    如果事件成立,就运行表达式1,将表达式1的结果作为最后的运算结果;否则就运算表达式2,将表达式2的结果作为运算的最终结果。
    9>运算符的优先级
    ①(优先级由高到底)()→一元(单目)运算符→算术运算符→关系运算符→逻辑运算符→赋值运算符→逗号
    ②(优先级由高到底)单目运算符→双目运算符→三目运算符→赋值运算符→逗号
    也可以不记:()能解决一切问题

    22.数据的存储规范
    1>大端:大的数据存在地址较低的内存单元,小的数据存在地址较高的内存单元
    2>小端:大的数据存在地址较高的内存单元,小的数据存在地址较底的内存单元(inter基本都是用小端存储)

    相关文章

      网友评论

          本文标题:电商专业学习嵌入式软件开发第十七天

          本文链接:https://www.haomeiwen.com/subject/pyjbittx.html