zoukankan      html  css  js  c++  java
  • 2018-2019-1 20165230《信息安全系统设计基础》第二周学习总结

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

    教材学习内容总结

    • 排列表示一个对象的字节有两个通用的规则:小端法(最低有效字节在最前面)和大端法(最高有效字节在前面)。
    • 表达式x>>k会将x算术右移k(左端补k个有效位)个位置,而x>>>k会对k做逻辑(左端补k个0)右移。
    • 要将一个补码数字转换为一个更大的数据类型,可执行一个符号扩展。
    • long:32位机器:4字节;64位机器:8字节
    • 负数的范围比整数的范围大1
    • 无符号数的编码:B2U(x->)=x*(2^x)之和
    • 补码编码(计算机中最常见的有符号数表示方式):B2T=最高位x最高位权重+其他位权重之和
    • 要将一个补码数字转换为一个更大的数据类型,可执行一个符号扩展。
    • 在相同长度的无符号和有符号整数之间进行强制类型转换时,大多数C语言实现遵循的原则是底层的位模式不变。

    • 在相同长度的无符号和有符号整数之间进行强制类型转换时,大多数C语言实现遵循的原则是底层的位模式不变。

    • 最常见的浮点表示方式是由IEEE标准754定义的。它提供了几种不同的精度,最常见的是单精度(32位)和双精度(64位)。

    • 由于表示的精度有限,浮点运算是不可结合的(书中举例P20)。

    • C语言允许在各种不同数据类型之间做强制类型转换。但要注意,将负数转换为无符号数可能会得到0,且强制类型转换的结果保持位值不变,只是改变了解释这些位的方式。

    • C语言支持所有整数数据类型的有符号和无符号运算,大多数数字都默认为是有符号的,所以要创建一个无符号常量,必须要就爱上后缀字符“U”或者‘u’,如123U。

    • 零扩展和符号扩展:零扩展应用于无符号整数,符号扩展应用于有符号整数。

    • 截断无符号数:x'=xmod(2^k) 截断k位

    • 截断补码数值:x'=U2(T_k)(xmod2^k)

    • 有符号数和无符号数的转换经常会导致程序出错而又不容易被发现,因此编程时一定要注意。

    • 无符号数和补码的乘法一样,除法都是进行移位。无符号数的除法移位后补0,补码的除法移位后补1。

    • 区分位运算和逻辑运算的区别与运算方法。

    教材学习中的问题和解决过程

    • 问题1:在看有符号数和无符号数之间的转换时,对转换规则中“位模式不变”产生了疑惑。
    • 问题1解决方案:强制类型转换的结果保持位值不变,转换前的负数补码表示与转换后的16位无符号数表示是完全一样的。

    代码调试中的问题和解决过程

    • 问题1:gcc编译出错
    • 问题1解决:通过错误提示“unrecognized command line option ‘-O’”发现是将小写的o写成了大写,导致出错
    • 问题2:git出错
    • 问题1解决:通过查看博客找到了解决方法:
      git remote add origin https://github.com/用户名/xxx.git

    $git fetch origin //获取远程更新

    $git merge origin/master //把更新的内容合并到本地分支

    代码托管

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 30 /30 1/1 8/8
    第二周
    第三周
    第四周
    第五周
  • 相关阅读:
    01-HTML控件
    08-多线程
    07-Log日志
    06-File-文件
    05-函数式编程
    04-异常使用处理
    03-常用包模块
    02-包
    Java NIO(六) Selector
    Java NIO(四) Scatter/Gather
  • 原文地址:https://www.cnblogs.com/tiankunye/p/9787036.html
Copyright © 2011-2022 走看看