• 2018-2019-1 20165313《信息安全系统设计基础》第二周学习总结


    教材学习内容总结

    学习目标

    理解二进制在计算机中的重要地位
    掌握布尔运算在C语言中的应用
    理解有符号整数、无符号整数、浮点数的表示
    理解补码的重要性
    能避免C语言中溢出,数据类型转换中的陷阱和可能会导致的漏洞
    进一步理解“信息=位+上下文”

    知识点总结

    1:三种数字表示
    无符号编码:表示大于或等于零的数字
    补码编码:表示有符号整数的最常见方式,可正可负。
    浮点数编码:表示实数的科学记数法的以2为基数的版本

    2:寻址和字节顺序:
    小端法:最低有效字节在最前面(Intel兼容机)
    大端法:最高有效字节在最前面(IBM和Oracle)

    3:C语言中的位级运算
    |(或)
    &(与)
    ~(取反)
    ^(异或)

    4:C语言中的逻辑运算(对应命题逻辑)
    ||(或)
    &&(与)
    !(取反)

    5:C语言中的移位运算
    左移
    右移:
    逻辑右移:在左端补k个0
    算术右移:在左端补k个最高有效位的值
    6:整数表示 及数据类型

    7:整数运算(重点)

    (1)无符号加法
    (2)补码加法
    (3)补码的非
    (4)无符号乘法
    (5)补码乘法
    (6)乘以常数
    (7)除以2的幂

    8:浮点数
    (1)二进制小数
    (2)IEEE浮点表示
    (3)数字示例
    (4)舍入
    (5)浮点运算

    代码托管

    实践项目

    2.96:

    刚开始并没有思路,后来参考了上一届学长学姐的提示与解析,才有了思路去做。
    其实这道题的一个重点就是按照float读出unsigned字节,而这就需要需要四句程序:
    unsigned sign=f>>31;
    unsigned exp=f>>23&0xFF;
    int exp_E=(int)exp-127;
    unsigned frac=f&0x7FFFFF;

    出现的问题:pow 未定义的应用
    解决方案:在gcc 命令后加-lm

    结果图:

    时间不够2.97就没有完成了。

  • 相关阅读:
    高精度乘法
    使用BFG清除git仓库中的隐私文件或大文件
    java运行的问题
    eclipse编写的java程序在dos环境下运行的写法
    win32汇编实现阶乘和斐波那契数列
    十个数字不同,实现加减乘。暴力枚举法
    实现一个类模板
    循环队列类模板和函数模板c++实例
    C++析构函数为什么要为虚函数
    1012-Joseph 约瑟夫问题
  • 原文地址:https://www.cnblogs.com/zch123456/p/9720776.html
Copyright © 2020-2023  润新知