設為首頁收藏本站

 取回密碼
 註冊
搜尋
熱搜: Redump discuz
檢視: 584|回覆: 10

【求助】 有沒有人會十進位數值改成二進位、十六進位數值

[複製連結]
發表於 2006年11月24日 14:25:52 | 顯示全部內容 |閱讀模式
4.請將下列的十進位數值改成二進位、十六進位數值。
(1)256 (2)3291 (3)56.22 (4)0.267
5.請將下列的二進位數值改成十進位、十六進位數值。
(1)1110101101 (2)1011.01 (3)111111.11011
6.請將下列的二進位數值改成單精度表示法(IEEE 754表示法)。
(1)11100111.110101 (2)-0.00001010111


幫幫  解個題   感恩喔
作者文章推薦
發表於 2006年11月24日 15:24:13 | 顯示全部內容
轉二進制範例

把整數和小數點區分~

首先是整數部份「56」~
二進制是「111000」~((你可以用電腦的小算盤~工程計算機~或是用手算))

再來小數點比較麻煩~「0.875」
將「0.875」乘2~結果為「1.75」~紀錄整數的數字「1」
去掉整數「1」將「0.75」乘2~結果為「1.5」~紀錄整數的數字「1」
去掉整數「1」後將「0.5」乘2~結果為「1.0」~紀錄整數的數字「1」
因為尾數已為「0」~
所以將整數與小數部份整和可得「111000.111」2

轉十六進制範例

直接將轉換後的二進制拿來用~
從小數點往左往右一次提出四個位元~
直接換算成十六進制~
小數點左邊抓四個位元即「0100」2 = 「4」16
再繼續抓四個位元「0011」2 = 「3」16
接著是小數點右邊抓四個位元即「1110」2 = 「E」16
整合之後即為「43.E」16

P.S.紅字的0是因為不足四個位元,所以要補上0,小數點亦同,但記得整數是往左補0,小數點之後是往右補0

二進位數值(1001101)
個位數代表2^0
第2位數代表2^1
第3位數代表2^2
第4位數代表2^3
第5位數代表2^4
第6位數代表2^5
.....依此類推
=1x2^6+0x2^5+0x2^4+1x2^3+1x2^2+0x2^1+1x2^0
=64+8+4+1
=77

十六進位數值(6A)
個位數代表16^0
第2位數代表16^1
=6x16^1+10x16^0
=106

IEEE-754 浮點數表示法的相關定義:

IEEE 754浮點數標準格式其定義為:

x = (-1)s * 2e-bias * 1.m

其中:s為符號位元(0表示正數,1表示負數),e為指數,bias為偏移量,m為假數

在單精確度(32位元)下,其格式為:

s(1位元)+e(8位元)+m(23位元)

   (指數偏移量為127)

接下來,針對題目來看,這兩個數只有最左邊的位元不同,參考單精確度的IEEE 754格式可知,兩者之差異在符號位元,亦即第一個數是負的,第二個數是正的!

再來考慮假數的部分:23個位元均為0,表示此數在正規化後為:1.0(因為23個位元均為0,換算成十進位亦為0),請注意IEEE 754的定義:

x = (-1)s * 2e-bias * 1.m ,在IEEE 754格式中只儲存小數點後面的部分,故換算時必須將1加入!

然後是指數的部分,其值為:011111112 ,將其換算成十進位值為127,扣減掉偏移值127後得到0,表示實際指數為0(127-127)!

代入定義式中:

第一個數為: (-1)1 * 2127-127 * 1.0 = -1*20*1 = -1 * 1 * 1 = -1

第二個數為: (-1)0 * 2127-127 * 1.0 = 1*20*1 = 1 * 1 * 1 = 1



希望對您有幫助.小弟太久沒學了.有點忘記怎算了.0.22一直沒辦法轉成2進位@@"
----------------------------------------------------------------------------------------------------------


4.請將下列的十進位數值改成二進位、十六進位數值。
(1)256 10000000 100 (2)3291 110011011011 CDB (3)56.22 111000.001110000101000111  38 (4)0.267
5.請將下列的二進位數值改成十進位、十六進位數值。
(1)1110101101 (2)1011.01 (3)111111.11011
6.請將下列的二進位數值改成單精度表示法(IEEE 754表示法)。
(1)11100111.110101 (2)-0.00001010111
我要回覆
發表於 2006年11月25日 22:01:33 | 顯示全部內容
我是沒轉過小數點的...
因為程式裡很少有小數點運算...
程式不是算數哦...如果要轉換這些可以用小算盤選工程型
但是有一個更快的轉法...我是當年在玩微電腦學習機時發現的...
不是跟別人學也不是書上看的哦...那就是利用學習機的數字鍵盤...

先把鍵盤劃分成H part 及L part
在鍵盤左邊由下往上 00-01-10-11 是 H part
在鍵盤下邊由左往右 00-01-10-11 是 L part
所以 H part 00->0-1-2-3四個數字
01->4-5-6-7
10->8-9-A-B
11->C-D-E-F

L part 00->0-4-8-C
01->1-5-9-D
10->2-6-A-E
11->3-7-B-F

當然不必記這些記住鍵盤圖就好了..
先試試看16轉2進制...
A轉出來是1010
怎麼轉呢先看H part 是下面往上數第三排...查出是10
L part 是看下面第三排 所以查出是10
結合起來就是1010

相同的二進制轉16進制...9轉出來是
1001...

大家想像一下其實這真的很容易記...試試看囉
在只有微電腦學習機的那個年代可是沒有小鍵盤可以轉的哦..
我要回覆
 作者| 發表於 2006年11月27日 10:04:39 | 顯示全部內容
太感謝了

感恩不盡https://www.fishman.idv.tw/phpforum/thread-16231-1-1.html
我要回覆
發表於 2006年11月27日 17:06:34 | 顯示全部內容
希望能幫到忙嚕^^"
那您能告訴小弟.
0.22的二進位是什麼呀?
我要回覆
發表於 2006年11月27日 18:23:48 | 顯示全部內容
看起來0.22小數部分應該是一個無窮數...
沒那個耐心去算...大概類似圓周率...如果有位數限制大概有解
我要回覆
發表於 2006年11月27日 19:10:32 | 顯示全部內容
呵呵.藍大也動手去算了.跟小弟一樣.遇到難題了.
不過不知道是否跟圓周率一樣無解呢.
有興趣的人就試看看吧.
也許也是個金氏世界紀錄吧.
我要回覆
發表於 2022年9月13日 08:39:21 來自手機 | 顯示全部內容
以前沒實物可參考,電腦拿回來後有實物囉。

https://www.fishman.idv.tw/phpforum/thread-16231-1-1.html

https://www.fishman.idv.tw/phpforum/thread-16231-1-1.htmlhttps://www.fishman.idv.tw/phpforum/thread-16231-1-1.htmlhttps://www.fishman.idv.tw/phpforum/thread-16231-1-1.html
我要回覆
發表於 2022年10月1日 23:45:49 | 顯示全部內容
研究了下這鍵盤真的有比較簡單
我要回覆
發表於 2022年10月4日 01:21:35 | 顯示全部內容
fishman 發表於 2022年9月13日 08:39
以前沒實物可參考,電腦拿回來後有實物囉。

這個我也看懂了真好用
我要回覆
發表於 2023年3月7日 02:11:49 | 顯示全部內容
沒用過來看看參考一下
我要回覆
懶得打字嗎?讓本助手協助你 【使用進階編輯器請點選右方進階模式】
您需要登入後才可以回覆 登入 | 註冊

本版積分規則

手機版|Archiver|漁家小舖

GMT+8, 2024年4月20日 00:31 , Processed in 0.424501 second(s), 48 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回覆 返回頂端 返回清單