CSAPP-信息的表示和處理

文章目錄

      • 概念掃盲
      • 思想理解
      • 經典好圖
      • 安全事件

概念掃盲

1.大端高位在前,小端低位在前
2.邏輯運算符(&& 、||、!)與位級運算(&、|、~)的差異
3.宏可以保證無論代碼如何編譯,都能生成正確的格式字符串
4.補碼最小值的逆元就是它本身
5. 非規格化數可以用于表示非常接近0.0的數,提供了逐漸下溢的屬性
6. 對于任何x,NaN+ f x ^fx fx=NaN。即浮點數計算中NaN無逆元,無窮數同理

思想理解

1.內存中每個字節的唯一數字表示就是地址,所有地址集合為虛擬地址空間,是用于展現給機器程序的概念映像
2.文本數據比二進制數據具有更強的平臺獨立性
3.使用宏可以保證不管代碼如何編譯,都能生成正確的格式字符串
4.補碼中最靠近0的負數映射為最大的無符號數
5.當有符號數和無符號數運算時,C語言會隱式將有符號數轉換為無符號數
6.小于0的二進制補碼除法(2)需要加上偏置,無法推廣到除以任意常數
7.C標準中,short==>uint 要先改變大小為int再轉為無符號
8.無符號數或者是補碼的加法和乘法沒有單調性,浮點數乘法沒有結合性,這些問題對于科學應用影響很大

經典好圖

補碼加法邊界圖像化

在這里插入圖片描述

NaN在表示未初始化的數據時有很多好處

在這里插入圖片描述

可表示的浮點數分布圖

在這里插入圖片描述

安全事件

1.XDR庫中利用乘法溢出導致的緩沖區溢出
修補方式如下:用64位整數(uint64_t)檢查32整數(unsigned int)是否溢出

  uint64_t asize = ele_cnt * (uint64_t) ele_size;unsigned int asize2 = ele_cnt * ele_size;if (asize == asize2) {//執行分配 }else { //拋出異常}

2.愛國者導彈的精確性問題,軟件更新導致不同函數讀取的時間精度不同,長時間運行導致誤差放大
3.Ariane 5爆炸,將64位浮點數轉換成16位有符號整數時發生溢出從而傳送無效數據

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/712062.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/712062.shtml
英文地址,請注明出處:http://en.pswp.cn/news/712062.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

flutterandroidx支持,【工作經驗分享】

基于Linux的pc啟動過程 我們都知道,所有的程序軟件包括操作系統都是運行在內存中的,然而我們的操作系統一般是存放在硬盤上的,當我們按下開機鍵的時候,此時內存中什么程序也沒有,因此需要借助某種方式,將操…

百度SEO工具,自動更新網站的工具

在網站SEO的過程中,不斷更新網站內容是提升排名和吸引流量的關鍵之一。而對于大多數網站管理員來說,頻繁手動更新文章并進行SEO優化可能會是一項繁瑣且耗時的任務。針對這一問題,百度自動更新文章SEO工具應運而生,它能夠幫助網站管…

搭建nginx+keepalived高可用(主備模式)

nginx安裝 1. 前置依賴安裝 yum install gcc gcc-c pcre pcre-devel zlib zlib-devel openssl openssl-devel -y2. 編譯安裝nginx nginx下載地址: https://nginx.org/en/download.html ## 安裝包位置:信息港16.11:/root/shl tar xvf nginx-1.20.2.ta…

chartjs 餅狀圖

之前要把canvas先清除掉&#xff0c;不然刷新數據&#xff0c;還會有前面的圖表 function clearCanvas(){$(#donutChart).remove();$(#chartdiv).append(<canvas id"donutChart" style"min-height: 500px; height: 500px; max-height: 500px; max-width: 70%…

淺談mysql mvcc

目錄 前言 mvcc 是如何工作的&#xff1f; 數據的更新 前言 mvcc 與一個事物的隔離級別有關&#xff0c;未提交讀永遠讀的是當前值&#xff0c;串行化是通過加鎖實現&#xff0c;這兩種隔離級別都與mvcc 沒有任何關系。只要一提到mvcc應該想到的是讀提交以及可重復讀&#…

vue+element ui上傳圖片到七牛云服務器

本來打算做一個全部都是前端完成的資源上傳到七牛云的demo&#xff0c;但是需要獲取token&#xff0c;經歷了九九八十一難&#xff0c;最終還是選擇放棄&#xff0c;token從后端獲取&#xff08;springboot&#xff09;。如果你們有前端直接能解決的麻煩記得私我哦&#xff01;…

『Linux從入門到精通』第 ? 期 - 動靜態庫

文章目錄 &#x1f490;專欄導讀&#x1f490;文章導讀&#x1f427;什么是庫&#xff1f;&#x1f427;為什么要有庫&#xff1f;&#x1f427;寫一個自己的庫&#x1f426;方法一&#x1f426;方法二 靜態庫&#x1f426;標準化&#x1f426;方法三 動態庫&#x1f426;配置動…

python中自定義報錯

class MyError(Exception):def __init__(self,num):#錄入的數Exception.__init__(self)self.numnumdef __str__(self):return 這是我定義的第%d個異常 %(self.num)使用 try:raise MyError(4) except MyError as e:print(e)raise 其作用是指定拋出的異常名稱&#xff0c;以及異常…

題目 1240: 生日日數

題目描述: CCC老師的生日是YY年MM月DD日&#xff0c;他想知道自己出生后第一萬天紀念日的日期&#xff08;出生日算第0天&#xff09;。 代碼: package lanqiao;import java.time.LocalDate; import java.util.*;public class Main {public static void main(String[] args)…

數據結構題目①——數組

前言 本篇文章為博主進行代碼隨想錄——數組練習后的總結會涉及到每一道題目的詳細的思路整理&#xff0c;以及本人的易錯點&#xff0c;希望對大家有所幫助 數組介紹&#xff1a; 數組在C語言中就已經有所涉及&#xff0c;它是一個最基礎的數據結構&#xff0c;而在數據結構中…

Java學習—FileInputStream

在Java編程中&#xff0c;文件操作是日常任務之一。無論是讀取配置文件、處理圖像&#xff0c;還是讀寫日志文件&#xff0c;理解如何有效地進行文件讀取都是非常重要的。Java提供了多種方式來操作文件&#xff0c;而FileInputStream是其中最基礎也是最直接的一種。本文將深入探…

Spring面試系列-01

1. 什么是 Spring 框架? Spring中文翻譯過來是春天的意思,被稱為J2EE的春天,是一個開源的輕量級的Java開發框架, 具有控制反轉(IoC)和面向切面(AOP)兩大核心。Java Spring框架通過聲明式方式靈活地進行事務的管理,提高開發效率和質量。 Spring框架不僅限于服務器端的…

three 層級模型

group.remove(mesh1,mesh2);Vector3與模型位置、縮放屬性 Group層級模型(樹結構) 創建了兩個網格模型mesh1、mesh2&#xff0c;通過THREE.Group類創建一個組對象group,然后通過add方法把網格模型mesh1、mesh2作為設置為組對象group的子對象&#xff0c;然后在通過執行scene.a…

jenkins部署maven項目

流程&#xff1a; jenkins從代碼倉庫讀取代碼&#xff0c;將代碼文件放入jenkins的工作空間&#xff0c;將jenkins工作空間的代碼進行打包&#xff0c;將jar包遠程發送給服務器。 一&#xff1a;所需插件二&#xff1a;Tools 三&#xff1a;System&#xff1a; 配置ssh連接的…

github要求2fa身份驗證

前言 github登陸的時候發現要求2fa驗證, 2fa是啥?咋驗證? 解決 2FA&#xff08;Two-Factor Authentication&#xff0c;雙因素身份驗證&#xff09; 就是在賬戶和密碼的基礎上增加一次驗證碼驗證,這樣即使密碼被竊取,由于黑客沒有你的驗證碼也無法登陸 就像是銀行的u盾一樣…

python63-Python的循環之循環使用else

Python的循環都可以定義else代碼塊&#xff0c;當循環條件為False 時&#xff0c;程序會執行else代碼塊。如下代碼示范了為while循環定義else代碼塊。 # !/usr/bin/env python# -*- coding: utf-8 -*-# Time : 2024/01# Author : Laopicount_i 0while count_i < 5:print(c…

Java集合相關面試題(2024大廠高頻面試題系列)

1、說一說Java提供的常見集合&#xff1f;&#xff08;畫一下集合結構圖&#xff09; 在java中提供了量大類的集合框架&#xff0c;主要分為兩類&#xff1a; 第一個是Collection 屬于單列集合&#xff0c;第二個是Map 屬于雙列集合 在Collection中有兩個子接口List和Set。…

【力扣hot100】刷題筆記Day14

前言 又是新的一周&#xff0c;快樂的周一&#xff0c;快樂地刷題&#xff0c;今天把鏈表搞完再干活&#xff01; 114. 二叉樹展開為鏈表 - 力扣&#xff08;LeetCode&#xff09; 前序遍歷 class Solution:def flatten(self, root: Optional[TreeNode]) -> None:if not r…

回溯 Leetcode 51 N皇后

N皇后 Leetcode 51 學習記錄自代碼隨想錄 按照國際象棋的規則&#xff0c;皇后可以攻擊與之處在同一行或同一列或同一斜線上的棋子。 n 皇后問題 研究的是如何將 n 個皇后放置在 nn 的棋盤上&#xff0c;并且使皇后彼此之間不能相互攻擊。 給你一個整數 n &#xff0c;返回所…

Linux —— 鏈接文件

硬鏈接 一般情況下&#xff0c;文件名和inode號碼是"一一對應"關系&#xff0c;每個inode號碼對應一個文件名。但是&#xff0c;Unix/Linux系統允許&#xff0c;多個文件名指向同一個inode號碼。 這意味著&#xff0c;可以用不同的文件名訪問同樣的內容&#xff1b;對…