第2章 數據是用二進制數表示的
熱身問答
閱讀正文前,讓我們先回答下面的問題來熱熱身吧。
問題
1. 32位是幾個字節?
2.二進制數01011100轉換成十進制數是多少?
3.二進制數00001111左移兩位后,會變成原數的幾倍?
4.補碼形式表示的8位二進制數11111111,用十進制數表示的話是多少?
5.補碼形式表示的8位二進制數10101010,用16位的二進制數表示的話是多少?
6.反轉部分圖形模式時,使用的是什么邏輯運算?
怎么樣?是不是發現有一些問題無法簡單地解釋清楚呢?下面是筆者的答案和解析,供大家參考。
答案
1. 4字節
2. 92
3. 4倍
4. -1
5. 1111111110101010
6. XOR運算
解析
1.因為8位=1字節,所以32位就是32÷ 8=4字節。
2.將二進制數的各數位的值和位權相乘后再相加,即可轉換成十進制數。
3.二進制數左移1位后會變成原來的值的2倍。左移兩位后,就是2倍的2倍,即4倍。
4.所有位都是1的二進制數,用十進制數表示的話就是-1。
5.使用原數的最高位1來填充高位。
6. XOR運算只反轉與1相對應的位。NOT運算是反轉所有的位。
本章重點
要想對程序的運行機制形成一個大致印象,就要了解信息(數據)在計算機內部是以怎樣的形式來表現的,又是以怎樣的方法進行運算的。在C和Java等高級語言編寫的程序中,數值、字符串和圖像等信息在計算機內部都是以二進制數值的形式來表現的。也就是說,只要掌握了使用二進制數來表示信息的方法及其運算機制,也就自然能夠了解程序的運行機制了。那么,為什么計算機處理的信息要用二進制數來表示呢?接下來我們就從其原因開始說起。
推薦閱讀
- GAE編程指南
- Mastering Entity Framework Core 2.0
- ASP.NET Core 5.0開發入門與實戰
- Linux C/C++服務器開發實踐
- JIRA 7 Administration Cookbook(Second Edition)
- INSTANT Weka How-to
- Learn Programming in Python with Cody Jackson
- PHP 編程從入門到實踐
- Mastering macOS Programming
- C#程序設計基礎:教程、實驗、習題
- Visual FoxPro程序設計
- 大數據分析與應用實戰:統計機器學習之數據導向編程
- NetBeans IDE 8 Cookbook
- Mastering jQuery Mobile
- Mastering Gephi Network Visualization