實驗報告二數(shù)據(jù)的表示_第1頁
實驗報告二數(shù)據(jù)的表示_第2頁
實驗報告二數(shù)據(jù)的表示_第3頁
實驗報告二數(shù)據(jù)的表示_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上計算機系統(tǒng)基礎實驗報告學院 信電學院 專業(yè) 計算機科學與技術   班級 計算機1401  學號 姓名 段登贏 實驗時間: 一、 實驗名稱:數(shù)據(jù)的表示1二、 實驗目的和要求:(1)實驗目的:熟悉數(shù)值數(shù)據(jù)在計算機內(nèi)部的表示方式,掌握相關的處理語句。(2)實驗要求:說明你做實驗的過程(重要步驟用屏幕截圖表示);提交源程序;分析并回答問題。三、 實驗環(huán)境(軟、硬件):軟件環(huán)境:操作系統(tǒng):Ubuntu ,版本:15.04編譯器軟件:GCC, 版本:5.4.0 硬件環(huán)境:處理器:i386處理器處理器個數(shù):雙處理器總核心數(shù):四核處理器位數(shù):32位四、

2、實驗內(nèi)容:(1)下述兩個結構所占存儲空間多大?結構中各分量所在位置相對于結構起始位置的偏移量是多少?請編寫程序以驗證你的答案。struct test1char x23;short x32;int x1;long long x4;struct test2char x23;short x32;int x1;long long x4;_attribute_(aligned(8);(2)“-2 < 2”和“-2 < 2u”的結果一樣嗎?為什么?(3)運行下圖中的程序代碼,并對程序輸出結果進行分析。(4)運行下列代碼,并對輸出結果進行分析。#include <stdio.h>vo

3、id main()union NUMint a;char b4; num;num.a = 0x;printf("0x%Xn", num.b2);五、 實驗結果及分析:(1)(2)實驗分析:正數(shù)的源碼,反碼,補碼都相同,負數(shù)在計算機存儲時按補碼存儲和運算,源碼除符號位外將每一位按位取反最后加一而來。在32位計算機中int占4個字節(jié)共32位。所以-2在內(nèi)存中的存儲方式:1,111 1111 1111 1111 1111 1111 1111 1110B即fffffffeH,此時最高位為符號位,2在內(nèi)存中的存儲方式:0,000 0000 0000 0000 0000 0000 00

4、00 0010B即2H,此時最高位為符號位。2u在內(nèi)存中的存儲方式:0000 0000 0000 0000 0000 0000 0000 0010B即2H,但此時最高位不再是符號位。由上述可知:-2<2是有符號數(shù)的比較,即-2+(-2)=fffffffeH+fffffffeH=1FFFFFFFCH= ,最高位符號位溢出,所以證明被減數(shù)的符號是負號,即-2<2是正確的。-2<2u是有符號數(shù)和無符號數(shù)之間的比較,此時編譯器會把有符號數(shù)自動轉(zhuǎn)換成無符號數(shù),所以就是:fffffffeH=D<2D=2H,顯然這是錯誤的。(3)實驗分析:因為所有比int型小的數(shù)據(jù)類型(包括char

5、,signed char,unsigned char,short,signed short,unsigned short)轉(zhuǎn)換為int型。如果轉(zhuǎn)換后的數(shù)據(jù)會超出int型所能表示的范圍的話,則轉(zhuǎn)換為unsigned int型;所以題中的c在和a比較時應該先轉(zhuǎn)換成int型,再轉(zhuǎn)換成unsigned int型,所以此時的c為1111 1111 1111 1111 1111 1111 1111 1111B(有符號數(shù)按最高位符號位進行擴位)即FFFFFFFFH,此時的a為1H,顯然c大于a,所以第一次輸出的是unsigned int is 0;同理當b和c比較時,c應該轉(zhuǎn)換成int型,所以此時的c為11

6、11 1111 1111 1111 1111 1111 1111 1111B即FFFFH=-D,b也應該轉(zhuǎn)換成int型,所以此時的b為0000 0000 0000 0000 0000 0000 0000 0001B=1D,顯然b>c,所以輸出unsigned short is 1(4)實驗分析:由于在union共用體當中,int a 和char b4數(shù)據(jù)公用同一段內(nèi)存地址,而此時a和b同時占用四個字節(jié),所以當執(zhí)行num.a = 0x;同時b也會被賦值,b的內(nèi)存示意圖如下:b的值87654321b的地址b0b1b2b3由上圖可知執(zhí)行printf("0x%Xn", num.b2);會輸出0x34。現(xiàn)在解釋為什么會出現(xiàn)表中的情況對于數(shù)組來說,下標越小地址越小,下標越大地址越大,而a=0x這個值中,1和2分別在最高位和次高位,它就會存儲在下標大的b3中,以此類推,便可以得到表中的數(shù)據(jù)。這也證明了我的32位Ubuntu是小端存儲(字數(shù)據(jù)的高字節(jié)存儲在高地址中,而字數(shù)據(jù)的低字節(jié)則存儲在低地址中)。六、 實驗心得通過這次實驗讓我對結構體和公共體有了更為深入的理解,首先我明白了結構體中成員的對齊理論,知道了在結構體中數(shù)據(jù)成員初始化順序的不同也會影響

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論