零基礎學編程之進位轉換基礎

2020-12-14 小楊談樓市

01十進位

十進位(逢10進1)是我們最常用的一種數位進位方式。十進位和二進位可以相互轉換,如下所示:

10進位轉2進位

上圖中,10稱做基數,10^n(10的n次冪)被稱作,… 10000、1000、100、10、1。

02二進位

二進位(逢2進1),是基數為"2"的進位。計算機使用二進位,是因為計算機設計者發現在複雜電路中,將低電平表示0,高電平表示1,只有兩種電位在通過門電路之後更容易計算。其實用其它進位也可以表示,但是比較麻煩。

二進位的基數為2,權為2^n(2的n次方),……、128、64、32、16、8、4、2 1。

2進位轉16進位

03補碼基礎

關於補碼,有比較有趣的演化過程,假如計算機中使用4位的二進位表示數據,如圖3-1中的a,最多能表示0到15(10進位),後有計算機大佬在此基礎上做了一個細微改動,將所有二進位以1開頭的數(大於7的數)放到0之前:如圖3-1的b,並且規用用這部分8-15對應二進位表示負數-1到-8,這就是4位補碼:如圖3-1的c。

補碼演化

仔細觀察會發現,-1(1111)+1(0001) = 1 0000,捨棄最高位"1"(超出4位),保留最後4位(4個0),則-1(1111)+1(0001) = 0(1 0000)

計算-1+1

同理-8(1000)+7(0111)=-1(1111)。

至此,得出了結論:在封閉的四位運算中(超出4位就丟棄),這種設計和規定是非常合理的。可是,我們又有了疑問:(-1)*(1)=?,會不會和結果就不一樣了?我來算一下:

計算-1*1

結果一樣,(-1)*(-1)= 1即1111 * 1111 = 0001,這種數據運算規則就是補碼運算。

總結:

計算機中正數和負數的關係是取反加一。舉例如:~3+1=-3(~3表示對3取反)補碼運算是封閉的:運算結果保留在補碼範圍內,超範圍就溢出.補碼邊界運算有溢出風險.4位二進位補碼最多能表示2^4(16)個數,數的範圍是-8~78位二進位補碼最多能表示2^8(256)個數,數的範圍是-128~12716位二進位補碼最多能表示2^16(65536)個數,數的範圍是-32768~3276732位二進位補碼最多能表示2^32個數,數的範圍是-2G~2G-1(1G= 1024*1024*1024)當我們知道了計算機中的一個二進位數,比如0000 1111,它的10進位為:

0000 1111 = 2^3+2^2+2^1+2^0 = 15(十進位) // 因為是正數,直接轉換既可

那1111 1001,表示的十進位數是多少?

則計算機中存儲的1111 1001轉換為十進位數是-7。反過來的換算過程如下:

計算機中二進位(轉)十進位:

以0開頭的,直接將2進位轉換為10進位;以1開頭的,需要4步,按位取反->末尾位加1->轉換為十進位->添加負號。十進位數(轉)計算機中二進位數:

正數取原碼,負數按位取反末尾加1。需要注意的是:4位補碼不能表示8。

04Java中的二進位規則

Java內部只有二進位補碼,計算機內部數據以二進位補碼表示。Java內部採用補碼運算,自動發送上溢出(乘法為上溢出)和下溢出(除法為下溢出)。Java內部沒有10進位,但是Java儘量按照人類習慣輸入輸出。補碼的負數,最高位是1,也稱作符號位。

05十六進位

十六進位是二進位制的簡寫,方便專業人員書寫二進位數據。比如一個十進位數1234567890,用十六進位表示就比二進位表示更方便,如下所示:

十六進位的基數為16,權為16^n(16的n次方),...、4096、256、16、1。

十六進位與十進位對照表:

十六進位和其他進位間的轉換:

41(16進位) = 4*(16^1) + 1*(16^0) = 65(10進位) = 0100 0001(2進位)

10進位、2進位、8進位、16進位對照表

相關焦點

  • 16進位顏色表示與RGB色彩模型——零基礎自學網頁製作
    十六進位是什麼?說到"進位",大部分沒有數學基礎的小夥伴會比較陌生,如果您是計算機愛好者,也會對"二進位"耳熟能詳。如果想了解16進位,還需要從我們最常用的10進位說起。10進位的意思,通俗來說就是數數到10就要向前進一位。比如9完了之後是10,11.....
  • 零基礎學編程應該怎麼開始?
    在這個階段我們充滿了對編程的幻想,面對任何棘手的問題都認為這只是在考驗我們,即便是學習最基礎的編程語法,我們依然會感覺很有成就感。補上計算機基礎很多人認為,編程就是一個高端行業,學習沒有基礎那是不行的,如果沒有相關基礎,在基本知識的理解上就會有一定的困難。
  • 大學生學編程需要什麼基礎?多久能學會呢
    眾所周知現在的程式設計師都是高薪工作,很多人會通過自學或培訓去獲得一些編程知識,那「學編程需要什麼基礎呢?」大學生學編程需要什麼基礎?多久能學會在學習編程的大軍中有相當一部分人是零基礎前來學習的,因此很多人在學習之前肯定會有這樣的疑問:「學編程需要什麼基礎?」
  • 零基礎學風變編程Python課程,是怎樣的一種體驗?
    為了不至於這麼早就被時代淘汰,身邊的朋友同事都在考慮學Python,其中大多都用了風變編程這款編程學習產品,包括本「小白」也是。很多人好奇零基礎怎麼學Python,接下來我就分享一下:零基礎學風變編程的Python課程,究竟是怎樣的一種體驗?
  • 零基礎學習編程 難不難
    本網10月23日訊 信息技術時代,編程將會成為了一種必備的技能,它能解決很多工作中複雜繁瑣的程序,懂得一些編程會讓你擁有超能力一般,於是很多人都對編程產生了興趣,那麼零基礎學習編程難不難呢?
  • 進位轉換器下載_進位轉換器手機版下載_進位轉換器安卓版免費下載...
    進位轉換器 系統安全 大小: 7.52MB
  • 數理轉換,互為質數與進位轉換
    先說一下進位:十進位裡逢十進一,1/2就是0.5;2進位裡逢二進一,1/2就是0.1;4進位裡逢4進一,1/2就是0.2;6進位裡逢6進一,1/2就是0.3。那在3進位裡呢?注意:十進位小數是常用的小數進位,但小數進位不一定是十進位。如17/32採用32進位,則小數表示為0.17。有限小數的本質是分母因式分解後的幾組因數,必須都是進位數的因數,比如1/2,1/4,1/5,1/8,1/10,1/16,1/20,它們之所以是10進位的有限小數,就是因為它們的分母最終只能分解為2和5這兩組進位因數。20進位的進位因數仍是2和5。
  • 學編程需要什麼基礎?
    學編程需要什麼基礎? 1、數學基礎 從計算機發展和應用的歷史來看計算機的數學模型和體系結構等都是由數學家提出的,最早的計算機也是為數值計算而設計的。因此,要學好計算機就要有一定的數學基礎,初學者有高中水平就差不多了。
  • 零基礎看得懂的C語言入門教程
    二、適用對象 本系列教程為零基礎輕鬆入門課程,適用對象為零基礎的讀者。讀者並不用擔心本系列教程會出現不理解的「專有名詞」,所有出現的術語都將給讀者解釋明白,甚至在C語言內容正式開始前會給讀者普及一些編程的概念,使讀者了解編程是什麼、什麼是編譯、為什麼C語言要這樣編寫以及一些常規問題的解答。
  • 上海北大青鳥:零基礎自學編程該怎麼做?
    很多零基礎入行IT的人,選擇自學程式語言。那零基礎自學編程需要該怎麼做呢?怎麼才能順利就業?今天,我們一起來看一下這些問題該怎麼解決。一、學習編程以前確定自己的的方向程式語言這麼多,在學習之前你想好你要學哪門了嗎?
  • 零基礎轉行學編程技術難嗎?
    編程並沒有想像中的那麼高不可得~而是可以通過自己的學習,進入到這個行業裡。其實不光是剛畢業的學生有這樣的擔憂,想要轉行的也有同款擔憂,畢竟隔行如隔山。多久能學會編程?當然了,也不要壓力太大,經過了風雨的洗禮後彩虹才更加靚麗~很多程式語言都是一層窗戶紙,開竅了,也就容易很多了。萬事開頭難,希望你能砥礪前行,不負所望。學編程難嗎?編程是一門技術,對於不同的人它的難度也是不一樣的,但是,技術是有道理和規律可以遵循的,個人認為:比搞抽象的藝術要容易。
  • 2020年零基礎學什麼程式語言進IT行業?
    大家都建議零基礎學編程,要想入行的話最好是學C語言,也許會有很多同學想知道為什麼不是Java,Java和C語言在學習上會有哪些不同呢?1.入門難度Java是一種面向對象的語言,C是一門面向過程的語言。C語言中包含函數、遞歸和比較難理解的指針概念指針是學C中繞不過去的知識點,而且下一步接著就是學數據結構和算法切換,指針還貫穿其中,搞不定一個指針,下一步的學習就很難,基本上很多初學者就在初期放棄了。2.就業方向Java主要應用於企業級應用開發、大型系統開發等領域。
  • 零基礎想學電腦編程技術,有哪些經驗可以借鑑
    零基礎轉行會面臨著很多問題,那麼對於大學畢業後零基礎想轉行成為程式設計師的人員來說我們需要注意哪些方面呢? 在轉行之前就要想好自己要學什麼,可以看看基礎的視頻或者是找行業內的人諮詢,看看擅長什麼,把想學啥清楚和分析了解清楚,就成功了一半,然後,真正讓你變好的選擇,過程都不會舒服,好的學習必須堅定自己的目標。
  • 零基礎怎樣才能學好編程
    隨著IT行業的發展越來越好,很多人開始想要學習編程,想要進入IT行業,對於零基礎的人來說需要面對很多困難,怎樣才能學好編程呢?現在很多人面臨最大的問題就是轉行,無論是什麼行業,轉行需要面對很多困難,編程最重要的是技術,如果沒有專業知識是行不通的。
  • 零基礎可以學習計算機編程嗎
    很多朋友想學習計算機主要是因為薪水高,但是又害怕零基礎,擔心學習不到,甚至很多朋友不知道電腦是什麼,未來的工作內容是什麼,只知道玩電腦等於高薪,對於每天忙碌的夥伴來說,考慮一下自己的職業規劃,考慮一下自己的興趣,是否真的想進入電腦it行業,並且了解零基礎應該如何選擇IT。
  • 零基礎如何入門學習電腦編程?
    零基礎如何入門學習電腦編程?有哪些好的方法呢?現在帶著疑問一起去了解一下吧。1、了解編程歷史的意義了解一些編程的實質遠比知道如何編程更有意義,不要在編程是怎麼回事的情況下就去學習編程,這樣對你的學習是十分不利的,作為一個編程愛好者,知道計算機的工作原理,這應該是一件再正常不過的事。
  • 環球網「報名大廳」:編程是孩子在人工智慧時代立足的基礎
    孩子學編程如何入門?少兒編程在國外已經發展近10年,全球已超過6000萬孩子接受編程教育。孩子學編程的可行性通過多年的發展已經得到了充分的驗證。對於一名零基礎的兒童來說,想學習編程應該循序漸進。學習路徑:編程遊戲啟蒙——可視化圖形編程入門——程式語言精通。入門階段尤為重要,這一階段不僅要培養孩子學編程的興趣,也將為孩子之後學習嚴謹的程式語言打下基礎。什麼是圖形化編程?
  • 「就業班D1907採訪實錄」學生篇:學習編程,零基礎、非科班真的重要...
    彭同學:雖說是腦子一熱就來學了Java,但總歸是自己的選擇,怎麼也要學完、學好。學習編程時,是否會因為有無基礎的問題遇到學習困難?戴同學:有無基礎影響不大。雖然是專業出身,懂一些編程,只能說在前期學習中會有一些優勢,比如,老師說的一些東西可能一看就懂,但在學校的時候並沒有學多少東西,所以後面進度基本和大家學習是一樣的。
  • 零基礎怎麼學計算機編程!看完的你,應該會恍然大悟!
    引言 最近幾年,人工智慧是個很火的行業,於是有很多的人想學習計算機編程,後面簡稱:編程。 提到編程,你大概會想到與它關聯的三門學科:電學、數學和英語。你可能懷著滿腔熱血,但是想想這三門學科學得不是很好,就沒有了信心,就想放棄。
  • 零基礎學理髮要學多久?
    首先說零基礎學理髮是可以的。但也因為是零基礎,會比一些學徒,小工,大工會慢一點。基礎的操作,工具的辨識度都還是不夠的。所以從頭學起。這些是避免不了要學到的。但也主要也是看天分和努力。畢竟1%的天賦加99%的汗水,等於成功嘛!