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
    第二周
    第三周
    第四周
    第五周
  • 相关阅读:
    UVA 254 Towers of Hanoi
    UVA 701 The Archeologists' Dilemma
    UVA 185 Roman Numerals
    UVA 10994 Simple Addition
    UVA 10570 Meeting with Aliens
    UVA 306 Cipher
    UVA 10160 Servicing Stations
    UVA 317 Hexagon
    UVA 10123 No Tipping
    UVA 696 How Many Knights
  • 原文地址:https://www.cnblogs.com/tiankunye/p/9787036.html
Copyright © 2011-2022 走看看