青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-145  評論-173  文章-70  trackbacks-0
本課講述了C/C++關(guān)于int,float等數(shù)據(jù)的底層表示,以及賦值操作所進(jìn)行的處理。本節(jié)內(nèi)容比較簡單,應(yīng)該屬于組成原理的基礎(chǔ)知識,各種碼的表示和底層實(shí)現(xiàn),但是,講述還不錯,特別是為何要這樣形成補(bǔ)碼,比單純記憶強(qiáng)多了,這樣才理解了取反加1的原因,比當(dāng)初上課的時(shí)候要理解深刻多了。

bool    1byte
char    1 byte
short   2 bytes
int        2-4 bytes
float     4bytes
double  8bytes

binary  digit ==> bit
1byte = 8種bit的組合,即共有2的8次方這么多種選擇。
每一位都有權(quán)值,對應(yīng)的,2的0次方依次往上遞增。

short:2 bytes表示,共有2的16次方表示
但是并不是完全表示正數(shù),最開始的符號位,1為負(fù)數(shù),0為正數(shù)(實(shí)際上就是反碼的表示方法)
缺陷: +7 + (-7),最終得到的數(shù)值用反碼來表示的話不是0。
因此,計(jì)算機(jī)處理起來很麻煩,以備淘汰

更優(yōu)的辦法是:補(bǔ)碼表示,取反加1.
為何? 從計(jì)算機(jī)表示的角度出發(fā),+7 加上什么為0呢? 接近0的數(shù)是,全部為1的(-1),然后加上1就可以溢出符號位,從而表示為0.
因此順理成章的,負(fù)數(shù)的表示就是,正數(shù)的基礎(chǔ)上,取反, 然后加1.

一個(gè)例子:
char ch = 'A';
short s = ch;(不需要類型轉(zhuǎn)換)
cout << s結(jié)果是,65.
如何做的呢?計(jì)算機(jī),just copy 
bit pattern copy的形式,不管你的類型如何,直接進(jìn)行拷貝,由于short比char多一個(gè)字符,所以拷貝的前一個(gè)byte直接用全0來復(fù)制。

現(xiàn)在,另外考慮一個(gè)例子,截?cái)唷?br />short s = 67;
char ch = s;
問題是,short比char 要多一個(gè)byte,那么賦值的話,是盡可能的接近嗎?
NO,計(jì)算機(jī)不懂值得大小,只會單純的copy,因此,截?cái)嗪竺娴?byte賦值過去而已。

同樣的,講short賦值給int的時(shí)候也是這樣處理的,高位全部copy為0,地位直接copy。而int賦值給short的時(shí)候,就是單純的截?cái)嗵幚矶选?br />現(xiàn)在的問題來了,如果是負(fù)數(shù)呢?
short s =-1;
int i = s;
這個(gè)時(shí)候,前面的高位字節(jié)直接賦值為0的話,事實(shí)上數(shù)值的大小是變化的。因此計(jì)算機(jī)的做法是,拷貝符號位復(fù)制到高位。這樣正數(shù),就是拷貝的0,所以高位全為0,而負(fù)數(shù)的話高位1,拷貝的話,高位全1.最終保證i的值仍然是-1.

接下來學(xué)習(xí)float的表示。
我們可以自定義一種解釋float的方法。權(quán)重依次降低,比如從2的31次方到2的0次方,變?yōu)?的29次方到2的-1次方,最開始的那一位表示為+/-符號位,這樣就可以表示一定的浮點(diǎn)數(shù),同樣的,再次降低權(quán)重就可以表示更低的數(shù)據(jù)了。
但是,實(shí)際上計(jì)算機(jī)的表示不是這樣的

采用了一種很奇怪的表示方法,即符號位(1位) + exp位(8位) + 浮點(diǎn)部分(23位)。
符號位表示政府,exp為8位的正數(shù)表示,浮點(diǎn)數(shù)表示0.XXXXX(0到1之間的數(shù)據(jù))
最終浮點(diǎn)的值是,2的(exp - 127)次方 乘以 1.XXXX表示。


最后兩個(gè)例子表示值拷貝的過程。
int i = 5;
float f = i;
輸出的結(jié)果是f仍然是5,why? 因?yàn)椴皇莃it copy,這里是直接進(jìn)行賦值,而類型不同,因此會先計(jì)算出來值得帶下,然后轉(zhuǎn)換一種類型表示出來。
也就是把5的int類型表示為float的類型,bit pattern是完全發(fā)生了變化的。

另外一個(gè)例子。
int i = 37;
float f = *(float *) &i;
這種是把i的地址取出來,認(rèn)為它表示的是float,因?yàn)椋╢loat *)的作用,然后解釋為float類型輸出它的值,注意的是,bit pattern并不會發(fā)生變化。

float f = 7.0;
short s = *(short *) &f;
由于是不同的類型,short只會截取自己那么大size的byte來進(jìn)行翻譯,所以float類型盡管4bytes,但是認(rèn)為是short類型的話,仍然截取的是2bytes。
從而輸出short的值應(yīng)該是一個(gè)比較小的值。注意,bit pattern并不會改變,只是取出來地址而已。

總結(jié)的關(guān)鍵是:just copy bit pattern!
posted on 2012-05-13 18:03 deercoder 閱讀(2809) 評論(0)  編輯 收藏 引用 所屬分類: 大學(xué)公開課
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产老女人精品毛片久久| 美乳少妇欧美精品| 欧美四级在线| 一区二区三区精密机械公司 | 欧美调教视频| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲免费福利视频| 欧美日韩高清免费| 亚洲在线第一页| 亚洲综合日韩在线| 老司机午夜精品| 欧美国产综合| 欧美精品激情blacked18| 99这里只有久久精品视频| 亚洲精品人人| 国产精品一区二区三区乱码| 久久精品视频在线看| 久久午夜激情| 亚洲欧美999| 久久精品免费观看| 日韩午夜电影av| 亚洲欧美日韩国产成人精品影院| 国模精品娜娜一二三区| 欧美激情91| 国产精品亚洲激情| 欧美国产三区| 欧美午夜一区二区| 美女在线一区二区| 欧美亚州一区二区三区| 浪潮色综合久久天堂| 欧美精品在线观看播放| 欧美一区二区精品| 免播放器亚洲| 欧美一区二视频| 欧美精品自拍| 久久婷婷国产综合精品青草| 欧美激情亚洲另类| 久久久水蜜桃av免费网站| 欧美激情亚洲视频| 久久久久免费视频| 国产精品地址| 91久久精品一区二区别| 国产乱码精品一区二区三区av | 在线播放日韩专区| 亚洲视频精品| 99国产精品99久久久久久| 久久精品成人| 欧美一区二区精美| 欧美天天影院| 亚洲美女啪啪| 日韩一级精品| 免费人成网站在线观看欧美高清| 欧美中文字幕在线| 国产精品久久99| 亚洲精品一区二区三区四区高清| 亚洲成色999久久网站| 午夜精品久久久久久久99樱桃| 99re6这里只有精品| 久久综合久色欧美综合狠狠 | 亚洲已满18点击进入久久| 欧美激情精品久久久久久蜜臀 | 亚洲欧美激情一区| 欧美精品国产| 最新日韩中文字幕| 亚洲人成在线播放| 欧美二区不卡| 亚洲国产激情| 99成人免费视频| 欧美精品成人| 亚洲精选一区| 国产精品久久久久久影视| 国产精品一区视频网站| 亚洲小说欧美另类社区| 亚洲综合大片69999| 国产精品久久99| 亚洲欧美美女| 久久人人爽人人爽爽久久| 国产日产欧美精品| 久久九九国产精品怡红院| 久久尤物视频| 亚洲人久久久| 欧美日韩高清在线播放| 亚洲美女电影在线| 亚洲欧美中日韩| 国产有码在线一区二区视频| 久久精品在线观看| 欧美国产一区视频在线观看| 亚洲美女视频在线观看| 欧美人成网站| 亚洲综合电影| 免费日韩av| 亚洲天堂男人| 国产午夜精品视频免费不卡69堂| 久久精品国产亚洲5555| 亚洲黄色毛片| 小黄鸭精品aⅴ导航网站入口| 国产一区二区三区在线观看精品 | 一区二区三区视频观看| 久久久久久一区二区三区| 亚洲国产午夜| 国产精品一区二区三区成人| 久久久免费精品| 亚洲六月丁香色婷婷综合久久| 欧美一区二区三区四区视频| 在线观看一区二区视频| 欧美体内谢she精2性欧美| 久久国产福利| 一区二区三区日韩精品视频| 欧美 日韩 国产在线| 亚洲伊人第一页| 亚洲国产高清高潮精品美女| 欧美性生交xxxxx久久久| 欧美在线一二三区| 一区二区三区四区在线| 免费观看日韩av| 亚洲欧美日韩精品| 亚洲精品亚洲人成人网| 国产亚洲一区二区三区在线观看 | 亚洲视频一区在线| 欧美激情按摩在线| 久久精品国产99| 一本到高清视频免费精品| 狠狠爱综合网| 国产精品一区二区三区免费观看| 欧美福利一区| 久久久亚洲高清| 亚洲欧美怡红院| a4yy欧美一区二区三区| 欧美激情中文字幕乱码免费| 欧美在线观看www| 亚洲私人影吧| 99国产精品久久久久久久久久| 黄色成人在线| 国产亚洲在线| 国产视频久久| 国产偷国产偷亚洲高清97cao| 欧美午夜激情小视频| 欧美日韩八区| 欧美二区在线观看| 久久亚洲私人国产精品va媚药| 欧美国产另类| 久久网站免费| 久久九九精品99国产精品| 亚洲欧美久久久| 一本一本久久| 中文av一区二区| 一区二区久久久久久| 亚洲精品一区二区三区樱花| 亚洲人成网站在线播| 亚洲国产日韩一区| 亚洲国产三级| 日韩视频永久免费| 9人人澡人人爽人人精品| 99re6这里只有精品视频在线观看| 亚洲精品国产系列| 99国产精品99久久久久久粉嫩| 亚洲乱码视频| 亚洲午夜电影网| 性久久久久久| 久久婷婷国产麻豆91天堂| 另类天堂av| 欧美日韩精品国产| 欧美亚男人的天堂| 国产欧美视频一区二区三区| 狠狠色综合网| 日韩亚洲一区在线播放| 亚洲综合视频在线| 久久久久九九九九| 欧美成人亚洲成人日韩成人| 亚洲欧洲精品成人久久奇米网 | 夜夜夜久久久| 午夜在线观看免费一区| 久久久高清一区二区三区| 欧美电影在线| 日韩一区二区精品| 久久国产精品久久国产精品| 麻豆freexxxx性91精品| 欧美精品一卡| 国产亚洲精品自拍| 亚洲精品免费一二三区| 亚洲欧美日本国产有色| 久久久久九九九| 99国产精品久久久久久久久久 | 亚洲欧美网站| 欧美a级大片| 国产精品一区二区三区观看| 亚洲电影免费观看高清| 亚洲新中文字幕| 久久综合久久久久88| 99国产精品99久久久久久粉嫩| 欧美一区二区精品久久911| 欧美日韩国产高清| 国产综合香蕉五月婷在线| 一区二区三区高清视频在线观看| 久久黄金**| 99re6热只有精品免费观看 | 亚洲乱码国产乱码精品精| 久久aⅴ国产紧身牛仔裤| 欧美三级在线视频| 亚洲国产美女久久久久|