深入理解計算機系統-作業2.10
1 void inplace_swap(int *x, int *y){ 2 *y = *x ^ *y;/*step1*/ 3 *x = *x ^ *y;/*step2*/ 4 *y = *x ^ *y;/*step3*/ 5 }
以上代碼的作用是交換x,y指針指向的存儲位置的值,假設x,y指向的位置存儲的值分別是a和b作為開始,填寫下表:
步驟 | *x | *y |
初始 | a | b |
第一步 | a | a ^ b |
第二步 | a ^ a ^ b | a ^ b |
第三步 | a ^ a ^ b | a ^ a ^ b ^ a ^ b |
因為 對於任一位向量a,有 a ^ a = 0. 根據這一屬性,上面的表格可以變為:
步驟 | *x | *y |
初始 | a | b |
第一步 | a | a ^ b |
第二步 | b | a ^ b |
第三步 | b | a |
深入理解計算機系統-作業2.10
相關推薦
深入理解計算機系統-作業2.10
oid 位置 pla borde 作業2 nbsp body 開始 width 1 void inplace_swap(int *x, int *y){ 2 *y = *x ^ *y;/*step1*/ 3 *x = *x ^ *y;/*step2*/ 4
深入理解計算機系統(2.4)------整數的表示(無符號編碼和補碼編碼)
class 映射 們的 c語言 正數 裏的 小例子 負數 類型 上一篇博客我們主要介紹了布爾代數和C語言當中的幾個運算符。那麽這一篇博客我們主要介紹在計算機中整數是如何表示的,諸如我們在編碼過程中遇到的對數據類型進行強制轉換可能會得到意想不到的結果在這篇博客裏你會得到解
深入理解計算機系統(2.8)---浮點數的舍入,Java中的舍入例子以及浮點數運算(重要)
https://www.cnblogs.com/zuoxiaolong/p/computer12.html 前言 上一章我們簡單介紹了IEEE浮點標準,本次我們主要講解一下浮點運算舍入的問題,以及簡單的介紹浮點數的運算。 之前我們已經提到過,有很多小數是二進位制
深入理解計算機系統 練習題2.25 答案與分析
#include <stdio.h> #include "stdafx.h" #include <iostream> using namespace std; float sum_elements(float a[], unsi
深入理解計算機系統 練習題2.31 答案與分析
測試程式碼 #include <stdio.h> #include "stdafx.h" #include <iostream> using namespace std; int uadd_ok(int x, int y) {
深入理解計算機系統 練習題2.25-隱式強制類型轉換導致的數組越界
print 代碼 nbsp end process 簡單 turned 轉換成 隱式 1 #include <stdio.h> 2 #include <iostream> 3 using namespace std; 4 5 flo
深入理解計算機系統 練習題2.32 答案與分析
錯誤示例 #include <stdio.h> #include "stdafx.h" #include <iostream> using namespace std; int tadd_ok(int x, int y) {
深入理解計算機系統 練習題2.11 答案與分析
可執行程式碼 #include <stdio.h> #include "stdafx.h" #include <iostream> using namespace std; void inplace_swap(int *x,
深入理解計算機系統homework2 2.85 2.93 2.95
2.85 最小的正非規格化數 值:2^(-63) * (2^(2-2^15)) = 2^(-16445) 十進位制值: 最小的正規格化數 值:1*2^(2-2^15) = 2^(-16382) 十進位制值: 最大的規格化數: 值:(2-2^(-6
深入理解計算機系統 練習題2.5 答案與分析
測試程式碼 #include <stdio.h> #include "stdafx.h" #include <iostream> typedef unsigned char *byte_pointer; void show_b
深入理解計算機系統(1.2)------存儲設備
高速 計算 想法 知識 1-1 運用 文件 字符 設備 上一章我們講解了hello world 程序在計算機系統中是如何運行的。 hello 程序的機器指令最初是存放在磁盤上的,當程序加載時,他們被復制到主存;當處理器運行程序的時候,指令又從主存復制到處理器。相似的,數
3.2《深入理解計算機系統》筆記(二)內存和高速緩存的原理【插圖】
img sram 本質 text ddr rate too 是我 很大的 《深入計算機系統》筆記(一)主要是講解程序的構成、執行和控制。接下來就是運行了。我跳過了“處理器體系結構”和“優化程序性能”,這兩章的筆記繼續往後延遲! 《深入計算機系統》的一個很大的用處
深入理解計算機系統_3e 第四章家庭作業(部分) CS:APP3e chapter 4 homework
ray design sed copy default ror this 處理 implement 4.52以後的題目中的代碼大多是書上的,如需使用請聯系 [email protected] 流水線部分只寫了偶數題號的,這幾天太浮躁,落下了好多課。。。 4.
深入理解計算機系統_3e 第八章家庭作業 CS:APP3e chapter 8 homework
fig lar man message -- ali rail raise mat 8.9 關於並行的定義我之前寫過一篇文章,參考: 並發與並行的區別 The differences between Concurrency and Parallel +----------
深入理解計算機系統_3e 第十一章家庭作業 CS:APP3e chapter 11 homework
cep serve 技術分享 apn only class control 相同 法則 註:tiny.c csapp.c csapp.h等示例代碼均可在Code Examples獲取 11.6 A. 書上寫的示例代碼已經完成了大部分工作:doit函數中的printf("%
深入理解計算機系統 2.4.2 IEEE浮點表示詳細講解
定義 IEEE浮點標準用以下公式表示\(V = (-1)^s * M * 2^E\) 符號(sign):s決定這書是負數(s = 1)還是正數(s = 0),而對於數值0的符號位解釋作為特殊情況處理 。 尾數(significand):M是一個二進位制小數,它的範圍是\
2018-2019-1 20189221 《深入理解計算機系統》第 2 周學習總結
2018-2019-1 20189221 《深入理解計算機系統》第 2 周學習總結 《深入理解計算機系統》第二章 本章講述了計算機的算術運算,重點描繪了無符號數和數的補碼錶示的特性。 資訊儲存 計算機字長,指明指標資料的標稱大小。32位機器虛擬地址空間為4GB。64位為16EB。64位機器可以執行32
《深入理解計算機系統》 練習題2.42-2.44
補碼除以2的冪 具體講解在書裡。這裡直接給幾個結論: 1)有符號數即補碼數執行的是,算術右移。 2)有變數x和 2 k
CSAPP深入理解計算機系統(第二版)第三章家庭作業答案
《深入理解計算機系統(第二版)》CSAPP 第三章 家庭作業 這一章介紹了AT&T的彙編指令 比較重要 本人完成了《深入理解計算機系統(第二版)》(以下簡稱CSAPP)第三章的家庭作業,並與網上的一些答案進行了對比修正。 感謝博主summerhust的整理,以下貼出AT&T常用匯編指令
深入理解計算機系統——2.1.4定址和位元組順序
對於跨越多位元組的程式物件,我們必須建立兩個規則: 這個物件的地址是什麼?儲存器如何排列這些位元組? 在幾乎所有的機器上,多位元組物件被儲存為連續的位元組序列, 物件的地址為所使用的整個位元組中首地址(最小地址)。 例如:一個int 的變數X的地址為0x100, 那