国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

色彩斑斕的記事本

2016-05-14 16:51陳凱
中國(guó)信息技術(shù)教育 2016年5期
關(guān)鍵詞:記事本字符畫布

陳凱

對(duì)計(jì)算機(jī)來說,不管在記事本中輸入的是什么字符,其在本質(zhì)上都是存儲(chǔ)了一段二進(jìn)制數(shù)據(jù)。如果輸入的是英文或數(shù)字,那么記事本會(huì)用ASCII碼將這些符號(hào)編碼成二進(jìn)制數(shù)據(jù);反過來,如果一段二進(jìn)制數(shù)據(jù)是用ASCII碼編制而成的,那么記事本就能將這些數(shù)據(jù)還原成英文或數(shù)字符號(hào)。但如果那些數(shù)據(jù)不是用ASCII碼編制而成的,那用記事本打開后,會(huì)看到什么呢?有人說,那樣會(huì)得到一串亂碼——先別著急下結(jié)論,來看這樣一個(gè)實(shí)驗(yàn)。

用記事本看畫圖

打開Windows的畫圖軟件,在整個(gè)矩形的畫布上傾倒紅色,并保存該文件為24位色的位圖,命名為test1.bmp,然后再往畫布上傾倒紫色(可在“編輯顏色”中選取某種紫色),并保存為24位色的位圖,命名為test2.bmp。接著用記事本分別打開這兩個(gè)BMP格式的圖像文件,發(fā)現(xiàn)顯示的效果是不同的(如圖1)。

紅色的圖像文件用記事本打開后,除了在第一行有一些看不懂的與圖像格式有關(guān)的信息外,其他就是許多行的空格,而紫色的圖像文件用記事本打開后,里面鋪滿了字符“f?f”,顯得很有規(guī)律,這顯然不是用“亂碼”一詞就能搪塞過去的。當(dāng)然,讀者自己在嘗試時(shí),因?yàn)檫x的紫色的色彩濃度和筆者未必一樣,所以出現(xiàn)的字符也有可能是不一樣的。

由于24位的位圖文件中的每個(gè)像素的顏色即紅、綠、藍(lán)各占8位bit存儲(chǔ)空間,而ASCII碼與擴(kuò)展ASCII碼占去的內(nèi)存空間也正好8位,因此不妨猜測(cè),“f?f”中的三個(gè)字符分別代表了RGB值中的藍(lán)色、綠色和紅色的顏色值(BMP格式文件中的顏色是按藍(lán)、綠、紅的順序來索引的)。查ASCII碼表可知,“f”的值為01100110,“?”的值為00111111,因此,每個(gè)像素點(diǎn)的顏色值是“01100110”“00111111”和“01100110”,換成十進(jìn)制就是“102”“63”和“102”。在畫圖軟件的“編輯顏色”窗口中輸入這三個(gè)值后,發(fā)現(xiàn)選中的顏色正是紫色,于是先前的猜想得到了驗(yàn)證(如圖2)。

至于紅色,因?yàn)槠銻GB值分別是紅色11111111、綠色00000000和藍(lán)色00000000,這些值恰巧都對(duì)應(yīng)了非字符類型的ASCII碼,所以記事本就只好以空格代之。

用顏色隱藏ASCII字符

基于以上原理,可以做一個(gè)有趣的實(shí)驗(yàn),將詞語隱藏在BMP格式的圖像中。例如,將“CAT”一詞隱藏到一幅小貓的圖畫中,具體怎么做呢?

①找到字符“C”“A”和“T”的ASCII碼的十進(jìn)制值,“C”為67,“A”為65,“T”為84。

②打開畫圖軟件的“編輯顏色”窗口,在顏色值中輸入紅色為84,綠色為65,藍(lán)色為67,然后就得到了一種灰中帶淡紫的顏色(注意是按藍(lán)、綠、紅的順序編碼)。

③將這種顏色在畫布上隱蔽的地方點(diǎn)上幾點(diǎn),然后保存為24位色的BMP格式文件。

④用記事本打開這個(gè)BMP圖像文件,滿篇“亂碼”中就隱藏著“CAT”一詞,不妨查找一下。

用類似的方法,只要有耐心,就可以在圖畫中隱藏大段有含義的文字,這項(xiàng)游戲不僅有趣,同時(shí)還涉及ASCII碼和位圖編碼的知識(shí)。最后留給讀者一個(gè)有難度的任務(wù):請(qǐng)存儲(chǔ)一張小貓的BMP位圖,要求用圖畫軟件打開時(shí)能正常顯示一只貓,而用記事本打開后,則可在一片“亂碼”中找出“喵”字。

猜你喜歡
記事本字符畫布
Python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫
正則表達(dá)式快速入門
圖片輕松變身ASCⅡ藝術(shù)畫
跟蹤導(dǎo)練(三)
畫布
跟蹤導(dǎo)練(一)
小小記事本
土撥鼠的記事本
記事本里的信息技術(shù)課
大師的畫布
宝山区| 高密市| 牙克石市| 庆云县| 调兵山市| 商城县| 三门县| 乌拉特后旗| 平原县| 梁平县| 临沂市| 肥西县| 松溪县| 天柱县| 渭南市| 台北县| 新营市| 大埔县| 边坝县| 同德县| 神木县| 许昌县| 进贤县| 东至县| 黎城县| 华阴市| 武义县| 通州区| 洪江市| 龙泉市| 浦北县| 邳州市| 河曲县| 辰溪县| 达日县| 清苑县| 东乡县| 荣成市| 监利县| 南平市| 闵行区|