close

最近有個朋友說他總是搞不清數字系統轉換是怎麼一回事,好像懂了但卻又算不出來~下面就來為各位說一下好了.我們從小接觸數學都知道逢10要進位,所以人類熟悉且習慣十進位.但在電腦世界裡,就是單純的On或Off,On以1表示,而Off則以0表示,當人們欲得知電腦的執行結果,若呈現在人們眼前的是一堆01010101這種組合的值,想必看了十分頭大.因此,若用8進位或16進位(簡稱Hex)來呈現則更為簡潔易用.

那若是要進行不同數字系統間的轉換要如何計算呢?我就以Python為例來說明,很簡單只要利用其內建函數便可輕鬆得到結果了.如下圖所示.將十進位值 45 分別轉換為二進位值101101及十六進位值2d. 那開頭的0b與0x只是數字系統的標識,可不是值的內容哦~

那若是要手動計算呢?也很簡單,如下圖所示,應該不用詳述才是.

那若是把十六進位值0x2D拿來換算為二進位或十進位呢?一樣的玩法,如下所示.不知道對不對的話,就跟前面的計算結果進行比對即知了.

那ASCII值的不同數字系統所呈現的值是多少要如何得知呢? ASCII是一套能讓人類與電腦"溝通"英文字母的對照系統,為何有這種需求呢?舉例來說各位便可理解了,電腦沒學過英文,因此它可不懂所謂的英文字母大小寫差異在哪,而ASCII定義了各個英文字母(包括無法顯示的字元)的唯一識別值.因此只要電腦參照了ASCII,便知道此時你所輸入的是a或是A了,如此方能忠實地執行人們所交付的任務而不會和人們雞同鴨講無法溝通.

此時朋友說話了,那英文字母 a 轉換為Hex的值便是97,英文字母 A 轉換為Hex的值則是65,對吧~ 這可就真閙出笑話了,可千萬別搞混了,正確地來說:

英文字母  a  的十進位值為97,轉換為十六進位值為0x61

英文字母  A 的十進位值為65,轉換為十六進位值為0x41

各位可以利用Notepad++的[Conversion Panel]功能輕鬆得到轉換結果哦~

 

 

arrow
arrow
    文章標籤
    數字系統轉換
    全站熱搜

    lin.yufong0310 發表在 痞客邦 留言(0) 人氣()