深入理解計算機系統第2 6題

2021-07-23 17:47:06 字數 2155 閱讀 5073

求整數3510593的記憶體二進位制表示和浮點數3510593.0的記憶體二進位制表示有多少位數時匹配的?

#include#include#include#includeusing namespace std;

//find_largest_substring用來查詢str1和str2中最大的連續子串

//如果找到返回true,並將子串儲存在substr中,並返回子串在str1中開始的下標index_in_str1。否則返回false

bool find_largest_substring(const string& str1, const string& str2, string& substr, int& index_in_str1, int& index_in_str2)

else

} }int max = 0;

int x = 0, y = 0;

//找出長度最長的值

for(size_t row = 1; row != len1 + 1; row++)

} }string ss(str1, x - max,max);

index_in_str1 = x - max;

index_in_str2 = y - max;

substr = ss;

return true;

}//逆置字串

void reverse_string(string& str)

return;

}int main(void)

float* pf = &f;

//pc = reinterpret_cast(pf);

pc = reinterpret_cast(pf);

cout << "浮點數3510593.0的十六進製制(小端法):" << endl;

for(int i = 0; i < sizeof(f); i++)

/* 整數3510593的十六進製制(小端法):

41 ffffff91 //這裡的輸出結果多出這麼多f是因為我們是這麼寫的char* pc = reinterpret_cast(pi);

35 //printf在解釋0x91的時候就解釋為有符號的整數,高位為1,所以前面加了很多f,

00 //改為unsigned char*型別指標以後,輸出正常了

浮點數3510593.0的十六進製制(小端法):

04 45

56 4a

請按任意鍵繼續. . .

*/ string str1, str2;//str1,str2分別用來表示x的二進位制表示和y的二進位制表示

for(int i = 0; i < sizeof(int) * 8; i++)

int* temp_pointer = reinterpret_cast(pf);

for(int i = 0; i < sizeof(int) * 8; i++)

reverse_string(str1);

reverse_string(str2);

string substr;

int index_in_str1;

int index_in_str2;

bool result = find_largest_substring(str1, str2, substr, index_in_str1, index_in_str2);

if(result)

return 0;}/*

最後的執行結果:

整數3510593的十六進製制(小端法):

4191

3500

浮點數3510593.0的十六進製制(小端法):

0445

564a

整數3510593在記憶體中的二進位制表示str1 :00000000001101011001000101000001

浮點數3510593.0在記憶體中的二進位制表示str2 :01001010010101100100010100000100

最長公共連續子串:

101011001000101000001 長度為 :21

最長公共連續子串在str1中開始的下標:11

最長公共連續子串在str1中開始的下標:9

*/

深入理解計算機系統

關鍵路徑是在迴圈的反覆執行中形成的資料相關鏈。迴圈展開是一種程式變換,通過增加每次迭代計算的元素的數量,減少迴圈的迭代次數。重新結合變換能夠減少計算中關鍵路徑上操作的數量,通過更好地利用功能單元的流水線能力得到更好的效能。浮點運算不保證是可結合的,通常迴圈展開和並行地累積在多個值中,是提高程式效能的...

《深入理解計算機系統》

知乎 深入理解計算機系統 這本書需要什麼水平能看懂?15 213 18 218 15 513 introduction to computer systems schedule fall 2016 鏈結失效則 cmu15 213的課程主頁,有ppt,還有錄影,主講人就是這本書的作者。備註 備註 詳細...

深入理解計算機系統

系統的硬體組成 快取記憶體 作業系統管理硬體 程序虛擬記憶體 檔案amdahl定律 併發和並行 0和1組成的位序列,又稱為位元序列,8個位被組織成一組,成為位元組。每個位元組表示程式中的某些文字字元。系統中的所有資訊 包括磁碟檔案 記憶體中的程式 記憶體中存放的的使用者資料以及網路上傳送的資料,都是...