日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

传说中的CAFEBABE到底在哪儿?

發(fā)布時間:2025/3/21 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 传说中的CAFEBABE到底在哪儿? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

大概在06年,我看到了一本書,叫做<<深入Java虛擬機>>。

在周志明那本神書《深入理解Java虛擬機》出來之前,這本書應(yīng)該是唯一一本講JVM的書, 對Java class文件格式,執(zhí)行引擎講得特別詳細。

我看了一遍看完了以后就“熱血沸騰”:原來Java 的class 文件格式是這樣的啊!也許我也可以寫一個JVM了!

于是我就開始琢磨, 先寫程序去解析.class文件, 然后寫一個小的執(zhí)行引擎,去執(zhí)行那些字節(jié)碼。?

作為第一步,我要寫個小程序去讀取硬盤上的.class文件,然后看看它的頭四個字節(jié)是不是著名的魔數(shù):“CAFE BABE

第一個字節(jié)實際的輸出結(jié)果讓我大跌眼鏡:?-54 !

這是怎么回事呢?說好的CA呢?

這個問題讓我想了很久,后來終于想明白了,CA 是16進制字符,變成二進制就是 1100 1010 , Java內(nèi)部使用補碼表示數(shù)字的,把1100 1010看作二進制補碼,它對應(yīng)的十進制可不就是-54嘛!

原來都是補碼惹的禍!

那計算機為什么用補碼呢?一個重要的原因就是簡化電路的設(shè)計:把整數(shù)的加減法統(tǒng)統(tǒng)變成加法來運算。

比如一個4位的計算機,能表示的數(shù)字是 0 ~ 15?

在做加法的時候非常簡單:?

8+3(十進制) = 1000 + 0011 = 1011 = 11 (十進制)

我們可以設(shè)計一套簡單的數(shù)字電路(與門,或門等)來實現(xiàn)這個加法運算。?

但是減法怎么辦呢?難道再設(shè)計另外一套電路?這就浪費了。

于是人們就引入一個‘補數(shù)?'的概念, 例如 3的補數(shù) 是 13, 4的補數(shù)是12, ?5 的補數(shù)是11......

當你計算7減去3 的時候, 可以變成 7加上3 的補數(shù), 即 7 + 13 :?

7-3 = 0111- 0011 (二進制3) = 0111 + 1101(二進制13) = 10100 ?

10101已經(jīng)是5位了,溢出了, 去掉最高位是 0100 ,就是十進制4 了。?

那二進制的“補數(shù)”怎么得出呢?人們想出了一個異常簡單, 又特別適合計算機電路的算法,?對二進制數(shù)的所有位取反, 然后加1

3 -> 0011 -> 1100 (取反) -> 1101 (加1)

這種方法是不是很神奇?只用一套加法電路和補碼電路就可以高效地實現(xiàn)加法和減法了。?

等等,負數(shù)怎么辦?我們手寫的時候,可以在一個數(shù)前加個負號, 就可以表示,但是對計算機來說,它必須得用某一位來表達正負,比如用這種方法:

最高位的0 表示整數(shù),1 表示負數(shù)。?

真正有效的數(shù)字只剩下3位了, 正數(shù)的范圍是從1 到7 ,負數(shù)的范圍從 -1到-7 ,不過這里出現(xiàn)了兩個零!一個正0 , 一個負0 , 這肯定不好!

改進一下,把那個負0 認為是-8吧,這樣還能多表示一個數(shù)字!

這樣,數(shù)字的范圍變成了從[-8 ,7]? 。?

推廣一下,在編程語言中,對于n位整數(shù),它的取值范圍是[-2^(n-1) ~ 2^(n-1) - 1] ?,正數(shù)要比負數(shù)少一個。?

但是之前的減法變加法的規(guī)則還能用嗎?我們試試:

7-4 ?= 7+(-4) =?0111 +1100 = 10011 -> 0011 (舍掉最高位) = 3, 正確!

4-7 = 4+(-7) = 0100 + 1001 = 1101 = -3 ?,正確!

注意,用這種辦法,連符號位都參與了運算。?

總結(jié)一下,?在計算機內(nèi)部,是使用補碼來表示二進制數(shù), 如果是一個正數(shù), 補碼就是它本身, ?如果是個負數(shù), 需要把除了符號位之外的二進制數(shù)進行取反加一的操作。?

回到我們開頭的問題, 如何正確地把第一個字節(jié)變成16進制字符串“CA”,然后展示出來呢?用這個函數(shù)就可以了:

總結(jié)

以上是生活随笔為你收集整理的传说中的CAFEBABE到底在哪儿?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 熟女高潮一区二区三区 | 麻豆精品视频在线观看 | 石原莉奈在线播放 | 处破女av一区二区 | 亚洲国产大片 | 国产人人爽 | 少妇又紧又深又湿又爽视频 | 国产欧美视频在线播放 | 亚洲av无码一区二区三区网址 | 欧美一级免费在线 | 88久久精品无码一区二区毛片 | 国产青草 | 欧美丰满老妇 | 久草青青视频 | 自拍偷拍2019 | 日美毛片| 婷婷.com| 嫩草影院在线观看视频 | 日韩欧美中文字幕一区二区三区 | 亚洲人视频在线观看 | 精品一区二区三区成人免费视频 | 白白色2012年最新视频 | 欧洲色av | 原创少妇半推半就88av | 99国产精品免费 | 国产天堂在线 | 国产精品资源在线 | 中文字幕一区2区3区 | 奇米影视777在线观看 | 天堂在线一区 | 黄色资源在线 | 51久久久 | 国产亚洲欧美一区二区三区 | 久久6精品 | 丰满大乳少妇在线观看网站 | 日韩欧美一区二 | 四虎一级片 | 亚洲专区中文字幕 | 久久毛片网 | 国产精品乱子伦 | 97超视频在线观看 | 一级淫片免费 | 2022天天操| 77久久| 九九热这里有精品 | 片集网| 草青青视频 | 一级特黄性色生活片 | 毛片毛片毛片 | 超碰美女 | 亚洲视频在线一区二区 | 日韩av在线不卡 | 欧美自拍偷拍一区 | 久久99精品久久久久 | 好看的黄色网址 | 熟妇五十路六十路息与子 | 欧美群交射精内射颜射潮喷 | 免费在线黄 | 香蕉久久夜色 | 国产成人在线视频网站 | 男人日女人b视频 | 九九热最新网址 | 青青在线视频 | 亚洲天堂免费在线观看视频 | 91丝袜一区二区三区 | 秋霞黄色片 | 精品久久久久久一区二区里番 | 欧美三级小说 | 亚洲人成电影在线 | 久久久久高潮 | av直接看| 国产精品久久久久久久久久久免费看 | 青青草免费观看视频 | 欧美一级黄色片视频 | 国产福利一区在线观看 | 国产成人精品一二三区 | 最近中文字幕免费视频 | www欧美在线| 日韩精品在线网站 | 国产精品久久久久久亚洲毛片 | 久久国产色av | 综合五月 | 欧美午夜精品一区二区三区电影 | 咪咪色影院 | 三上悠亚在线观看一区二区 | 亚州av一区 | 亚洲欧美一区二区三区在线 | 特黄特色大片免费视频大全 | 日本一区视频在线 | 日本v视频 | 超碰国产在线观看 | 久久只有这里有精品 | 亚洲av久久久噜噜噜熟女软件 | 中文在线资源 | а√天堂中文在线资源8 | 俄罗斯破处 | 青青青手机视频在线观看 | 日干夜干天天干 | 国产www免费观看 |