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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java复习2(编码)

發(fā)布時間:2023/12/19 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java复习2(编码) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1補充知識點:

重要概念

? ? 一個整數(shù)a=14,那么

? ? a對應的二進制數(shù)值b=01110。

? ? a對應的原碼c=01110.

? ? 注意b和c雖然都是1110,但是兩個是不同的,b是a對應的二進制數(shù)值,c是b這個數(shù)據(jù)值在計算機為了表示這個值所進行的編碼。b的最高位可以省略 c的最高位確是符號位不能省略。

1.1 數(shù)據(jù)與文字的編碼

根據(jù)計算機中信息的編碼表示方式,將數(shù)據(jù)分為“定點數(shù)據(jù)”、“浮點數(shù)據(jù)”、“圖形數(shù)據(jù)”和“文字數(shù)據(jù)”

“定點數(shù)”是指小數(shù)點位置固定不變的數(shù)。如整數(shù) 2700和純小數(shù)0.123。

“浮點數(shù)”是指小數(shù)點位置變化的數(shù) 如浮點數(shù) 123.567。

通過兩個例子就看出了“定點數(shù)”和“浮點數(shù)”的差別了。

“定點數(shù)”和“浮點數(shù)”統(tǒng)稱為”數(shù)值編碼

?

點定數(shù)在計算機中可以使用原碼、補碼、反碼來表示。

?

在java語言中,你就認為 byte、short、char、long是補碼表示的。

補碼 表示法也是用最高一位代表符號,其余各位代碼表示數(shù)值。

?

對于一個整數(shù)x,補碼的編碼方式為:

正數(shù)的補碼與源碼相同,

負數(shù)的補碼將x的二進制位按位取反后再最低位加1.

?

如 正整數(shù)x=1010 則 x的原碼=01010;x的補碼=01010

如 負整數(shù)y=-1010 則y的原碼=11010;y的補碼=10110

?

對于一個純小數(shù)x=0.1010 y=-0.1010? (這個可以忽略)

x的原碼 = 0.1010 x的補碼=0.1010

y的原碼 = 1.1010 y的補碼 =1.0110

?

求一個負數(shù)的補碼的另一個方法: 從最低位開始,對遇到的0和第一個1取其原碼,從第一個1之后開始直到最高位均按位取反。

?

補碼的特點:

1.負數(shù)比正數(shù)多一個,零有唯一的編碼,即0000....0。

怎么理解這句話呢?

舉例用一個四位二進制數(shù)表示一個數(shù),其中最高位是符號位。

正數(shù)的范圍為0 001 ---到0 111 對應十進制數(shù)為 1到7

負數(shù)的范圍為1 000 ---到1 111 對應十進制數(shù)為 -8到-1

就多出來這個1000(對應的-8 這是根據(jù)補碼的數(shù)值計算公式得出的)

一個n+1為負整數(shù)的補碼,其數(shù)值計算公式為

???

本例的n+1位為4,然后n也就3,所以:

? 1 000對應十進制值 = - 1*(2*2*2)+0*(2*2)+0*(2)+0 = -8

?

零 就是 0000? (也是使用補碼表示數(shù)值的原因之一 用補碼表示數(shù) 0 值唯一? 用原碼表示數(shù)的時候 0 值有兩個+0和-0)

?

2.將一個數(shù)的補碼按位取反,在最低位上加1后就得到它的相反數(shù)的補碼。經常用這個特點求一個負數(shù)的補碼

如 正6(補碼是0110)的相反數(shù)是 -6(1010)

這個特性非常重要,

應用于

(1)求一個負數(shù)的補碼時,先求這個數(shù)相反數(shù)(也就是一個整數(shù))的補碼,通過這個特性求出這個負數(shù)的補碼。

如 a=-6 求a的補碼。 ?

1. a的相反數(shù)為 6

2. 6的補碼是 0110

3. 根據(jù)這個特性求得a的補碼為1010

(2)求一個負數(shù)補碼對應的十進制值時,使用上述公式比較麻煩,而使用這個特性就簡單多了。

如 求補碼1010對應的十進制值。

1.1010的最高位是1 所以知道此數(shù)為負數(shù)。

2.根據(jù)這個特性求出對應的相反數(shù)(正數(shù))為0110.

3.這個正數(shù)0110對應的十進制值為6.

4.將負號加到6上,就得到了-6。

?

?

下面是了解:

”浮點數(shù)“通過尾數(shù)和階碼的概念來表示。

怎么理解呢?例子如下

12.8這個浮點數(shù)可以通過科學記數(shù)法來表示 即 0.128*102

128對應的二進制原碼是0100000000

2對應的二進制數(shù)是10

那么 在計算機中怎么表示這個數(shù)呢?

將”10“放入尾數(shù),0100000000放入”階碼“,將0放入”符號“

這樣0 0100000000 10 這一串就表示12.8這個浮點數(shù)

也就是 將12.8 編碼為0 0100000000 10

?

文字編碼(也就是java的字符編碼或字符串編碼)

1.西文字符的編碼:

ASCII碼:用8個二進制位表示,最高位是0,余下7位可以給出128個編碼,表示128個不同的字符

其中95個對應英文字母、數(shù)字等可顯示和可打印的字符。另外33個字符的編碼值為0-31和127

表示一些不可顯示的控制字符。

33個控制字符如下:

0 NUL(null) 空字符、 1 SOH(start of headline) 標題開始 2 STX (start of text) 正文開始、? 3 ETX(end of text) 正文結束、 4 EOT (end of transmission) 傳輸結束 5 ENQ (enquiry) 請求、6 ACK (acknowledge) 收到通知 7 BEL (bell) 響鈴 8 BS (backspace) 退格、9 HT (horizontal tab) 水平制表符 10 LF (NL line feed, new line) 換行鍵 11 VT (vertical tab) 垂直制表符、12 FF (NP form feed, new page) 換頁鍵 13 CR (carriage return) 回車鍵 14 SO (shift out) 不用切換、15 SI (shift in) 啟用切換 16 DLE (data link escape) 數(shù)據(jù)鏈路轉義 17 DC1 (device control 1) 設備控制118 DC2 (device control 2) 設備控制2 19 DC3 (device control 3) 設備控制3 20 DC4 (device control 4) 設備控制421 NAK (negative acknowledge) 拒絕接收 22 SYN (synchronous idle) 同步空閑 23 ETB (end of trans. block) 傳輸塊結束、24 CAN (cancel) 取消 25 EM (end of medium) 介質中斷 26 SUB (substitute) 替補、27 ESC (escape) 換碼(溢出) 28 FS (file separator) 文件分割符 29 GS (group separator) 分組符、30 RS (record separator) 記錄分離符、 31 US (unit separator) 單元分隔符 32 space 空格、127 DELdelete 刪除)

?

計算機的鍵盤能將用戶單擊的按鈕用ascii編碼的形式傳送給主機。

?

2.漢字的編碼:

漢字編碼=輸入用的編碼+機內存儲的編碼。

輸入碼分為:數(shù)字編碼、拼音碼、字形碼(如五筆)

怎么理解呢?如拿拼音碼舉例,對于”shang“這個拼音它對應

其中”shang“這個拼音就需要編碼。

機內碼:

GB2312規(guī)定了3755個最常用漢字和3008個較常用漢字。

圖中重點:

1 十六進制81對應的二進制是1000 0001 ASCII碼首碼為0

2 ”GB18030采用單字節(jié)、雙字節(jié)、四字節(jié)的三種方式編碼,全面兼容了ASCII碼和GB2312“

的意思是:在GB18030編碼庫中,十六進制的00---7F這個單字節(jié)碼就是對應了ASCII碼。

3 最后一句計算機中的漢字編碼都是軟件定義和處理的

3.十進制數(shù)的編碼:

1.2 定點數(shù)的加減運算

?

在數(shù)據(jù)運算中,參與運算的數(shù)據(jù)又成為”操作數(shù)(operand)“。

? ?1 定點的數(shù)的補碼加法公式:

? ? ? ? ? ? ? ? [x]補 + [y]補 = [x+y]補 ?就是兩個數(shù)的補碼相加,其結果就是這個兩個數(shù)相加后的補碼。

? ? ? ? ? ? 如x = 13,y=8 ,x+y=21,

? ? ? ? ? ? ? ?則[x]補=0 01101 ?, ??[y]補=0 01000 ?[x+y]補=0 10101

? ? ? ? 定點的數(shù)的補碼減法公式:

? ? ? ? ? ? ? ? [x]補 - [y]補 = [x-y]補 =?[x]補 +?[-y]補

? ?2.溢出的檢測方法:

? ? ? ? 上述補碼加減運算成立的前提是運算結果”不溢出“。

? ? ? ? 對于加法,只在正數(shù)加正數(shù)和負數(shù)加負數(shù)這兩種情況下才會溢出。符號位不同的兩個數(shù)相加不會產生溢出。

? ? ? ??對于減法,只在正數(shù)減負數(shù)和負數(shù)減正數(shù)這兩種情況下才會溢出。符號位相同的兩個數(shù)相減不會產生溢出。

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結

以上是生活随笔為你收集整理的java复习2(编码)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。