首页 > 其他分享 >CSAPP 第二章 笔记

CSAPP 第二章 笔记

时间:2023-10-25 13:45:40浏览次数:36  
标签:舍入 右移 CSAPP 符号 补码 整数 笔记 第二章 移位

信息存储

  • 十六进制表示法
    • 0x开头
  • 字数据大小
  • 寻址和字节顺序
    • 大端法/小端法
  • 布尔代数
  • C中逻辑运算
  • C中移位运算
    • 右移(算数/逻辑)

整数表示

无符号数编码

补码编码

各种转换

  • 有无符号数之间的转换

  • 不同字长整数之间的转换

    • 小->大
      • 无符号数:补零
      • 有符号数:补符号位
    • 大->小
      • 截断(取模)

整数运算

无符号数

  • 加法

  • 取反

  • 乘法

  • 与整数相乘
    优化为加减和移位相组合

  • 除以2的幂

    • 逻辑右移

补码

  • 加法


  • 其中-x可以表示为补码
  • 乘法
  • 与整数相乘
    优化为加减和移位相组合
  • 除以2的幂
    • 算术右移
      • x<0时,加入偏置(1<<k)-1

浮点数

IEEE浮点表示

  • 形式
    $ V=(-1)^s × M × 2^E$
    • s:符号
    • M:尾数
    • E:阶码
  • 格式
    • 单精度时 1+8+23
    • 双精度时 1+11+52
  • 编码值
    • 规格化

      - 其中偏置量bias与E的位数k有关
      \(bias = 2^{k-1} - 1\)
    • 非规格化
    • 无穷大
    • NaN(不是一个数)

示例

舍入

其中,向偶数舍入:

  • 目的:避免统计偏差(一半向上舍入,一般向下舍入)
  • 二进制中向偶数舍入:0为偶,1为奇

标签:舍入,右移,CSAPP,符号,补码,整数,笔记,第二章,移位
From: https://www.cnblogs.com/dddon/p/17782997.html

相关文章

  • 信息系统与开发和管理 第二章
    单选管理的含义中心:管理其他人工作目的:通过其他人的活动来收到工作效果考虑的方面:其他人和其他人的活动追求:群体的协同效应管理和信息的关系管理就是基于信息的决策的过程步骤发现问题拟定方案做出决策管理现代化管理思想管理组织管理方法管......
  • bilibili B站:从零开始学Makefile - 原作者笔记
    视频摘自B站:https://www.bilibili.com/video/BV1Bv4y1J7QT笔记摘自:https://gitee.com/yanmu_ym/cpp学习环境搭建Linux(以Ubuntu为例)sudoaptinstallgccg++makeWindows学习与演示过程以Windows为主,Windows上装MinGW环境,MinGW官网:https://www.mingw-w64.org/之前我们提过两个版......
  • 华为云耀云服务器L实例:高级篇-部署自己的memos云端笔记
     华为云耀云服务器L实例是一款可快速部署且易于运维的轻量级云服务器,专为中小企业和入门级开发者打造。它不仅拥有华为云擎天架构的强大性能,还具有多项用户体验优化方案,让用户轻松上手,享受简单上云的乐趣。本产品网址为:https://www.huaweicloud.com/product/hecs-light.html......
  • 【图形学笔记】Lecture02&03 光栅化、抗锯齿、Z-buffer
    目录Lecture02-DigitalDrawing数码绘画Triangles-FundamentalAreaPrimitive三角形——基本区域Rasterization光栅化Sampling采样Lecture03-Sampling,Aliasing,Antialiasing采样、锯齿、抗锯齿Artifactsduetosampling-“Aliasing”采样产生的问题-混叠Antialias......
  • bilibili B站:【文档向】CMake基础知识 - 原作者笔记Markdown风格
    视频摘自B站:https://www.bilibili.com/video/BV1hz4y1H7YA笔记摘自:https://gitee.com/yanmu_ym/cpp[TOC]#预备知识##CMake是什么CMake是一个管理代码构建的工具。与平台和构建系统无关。最初CMake只用于生成不同版本的Makefile。现在CMake可以生成不同构建工具构建文件,也可......
  • bilibili B站:【文档向】CMake基础知识 - 原作者笔记
    视频摘自B站:https://www.bilibili.com/video/BV1hz4y1H7YA笔记摘自:https://gitee.com/yanmu_ym/cpp目录预备知识CMake是什么环境搭建与学习准备前置条件Ubuntu安装CMakeWindows安装CMake学习材料CMakeTutorial第一步起点练习1最简单的CMake项目练习2指定C++标准练习3添加版本......
  • bilibili B站:从零开始学Makefile - 原作者笔记Markdown风格
    视频摘自B站:https://www.bilibili.com/video/BV1Bv4y1J7QT笔记摘自:https://gitee.com/yanmu_ym/cpp#学习环境搭建###Linux(以Ubuntu为例)```shellsudoaptinstallgccg++make```###Windows学习与演示过程以Windows为主,Windows上装MinGW环境,MinGW官网:https://www.min......
  • 【学习笔记】广义串并联图方法
    还是比较【小粉兔】的。广义串并联图是指一类不存在同胚于\(K_4\)的子图的图,翻译成人话就是不存在四个点\(a,b,c,d\)使得这四个点之间存在六条除顶点外不相交的路径连接每一对点。广义串并联图有几个性质:\(m\le2n\),为平面图;通过若干次删\(1\)度点,缩\(2\)度点,叠......
  • TF学习笔记
    参考:http://t.csdnimg.cn/crHL1检查下CUDA是否安装成功。打开cmd,输入以下命令查看CUDA是否安装成功(二选一)如果不能显示以下信息,则说明安装失败。nvcc-Vnvcc--version 还可以查看CUDA设置的环境变量。 我们还可以搜索CUDA的安装目录,找到“nvcc.exe”文件。cuDNN神......
  • 两台笔记本电脑实现同一wifi下访问虚拟主机的WEB服务
    在同一WiFi可以实现两台笔记本设备互相访问共享文件。那一台笔记本如何访问另一台笔记本里的虚拟机里的Web服务呢?客户端A,访问服务端B上的虚拟机C,web服务端口:80001首先,确保服务端B可以正常访问虚拟机C的web服务,可参考:解决Linux(虚拟机VMware)无法联网/静态ip设置(附有li......