主頁 >  其他 > 程式員不得不了解的計算機進制轉換

程式員不得不了解的計算機進制轉換

2023-05-16 19:53:05 其他

程式員不得不了解的計算機進制轉換

最近在備考軟考的軟體設計師考試,學到了關于計算機的資料表示,由于我是半路出家學的Java,導致計算機基礎知識很差,在這里記錄一下學習感受

為啥要用二進制

  • 早期計算機的存盤介質是晶體管,晶體管根據電壓不同,只能表示2種狀態,也就是0和1
  • 計算機使用二進制運算更加方便

更詳細的請參考計算機為啥采用二進制

為啥要用十六進制

首先,假如你的計算機是32位的機器,數字1在計算機中的表示就是0000000000000000001,
假如你是要操作記憶體,用這么長一串二進制數,是不是感覺有點頭大,1位16進制數可以表示4位二進制數,
數字1用16進制來表示就是1H,是不是感覺清爽多了,

進制轉換的原理

閱讀本章之前需要明確的點

  • 進制數的位數從右到左,分別表示從高到低,我們稱右邊的數為高位,左邊的數為低位
  • 一位八進制數最多表示三位二進制數,一位十六進制數最多表示4位二進制數

十進制轉二進制、八進制、十六進制

對于10進制轉其他進制,一般是使用除法取余數的方式進行計算

例如將數字151 轉換為二進制

被除數  ÷  除數  =  商  ... 余數
151 ÷ 2 = 75 ... 1 
75 ÷ 2 = 37 ... 1 
37 ÷ 2 = 18 ... 1 
18 ÷ 2 = 9 ... 0 
9 ÷ 2 = 4 ... 1
4 ÷ 2 = 2 ... 0 
2 ÷ 2 = 1 ... 0 
1 ÷ 2 = 0 ... 1
將每一步得到的余數從下往上依次排列,得到 10010111,即151的二進制表示,

轉為八進制

151 ÷ 8 = 18 ... 7
18 ÷ 8 = 2 ... 2
2 ÷ 8 = 0 ... 2
151的8進制表示為227

轉為十六進制

151 ÷ 16 = 9 ... 7 
9 ÷ 16 = 0 ... 9
因此,151的16進制數為97

二進制、八進制、十六進制轉十進制

對于其他進制轉換為10進制,我們一般是采用按權展開法,并且具有公式

image

image

例如: 十進制數11的二進制數為1011

使用按權展開法,首先該二進制數有4位,所以n為4,可以得出以下式子
image

對于八進制,十六進制都是使用該方法轉換為10進制

二進制、八進制、十六進制之間互相轉換

將二進制數轉換為八進制數,需要先將二進制數轉換為10進制,然后將10進制數轉換為八進制

這種轉換方式有點麻煩,如果不是很大的數字,可以看下一章,快速轉換

快速轉換進制的方法

快速轉換可以通過查表的方式快速轉換

十進制 二進制 八進制 十六進制
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 - 8
9 1001 - 9
10 1010 - A
11 1011 - B
12 1100 - C
13 1101 - D
14 1110 - E
15 1111 - F

在這個表格中,每個進制的數字都有對應的二進制、八進制、十進制、十六進制數,例如,十進制數2對應二進制數10,八進制數2和十六進制數2都是用數字2來表示,十六進制數F對應二進制數1111,使用這個表格可以快速地進行不同進制之間的轉換,

這種方式對于二進制、八進制、十六進制之間的轉換非常有效

例如 將二進制數10101轉換為十六進制

  • 首先一個十六進制數最多表示4位進制數
  • 從低位取4位二進制數 0101 在16進制下沒有發現該數字,將高位的0去掉 得到 101,查到16進制數5
  • 繼續從低位再取4位,發現只有1了,那它的16進制數就是1
  • 從低位到高位組合16進制數 得到 15

進制加減法

還記得小學我們學的十進制加減法不,即滿十進一法.
其實對于二進制,八進制,16進制數可分別對應滿二進一,滿八進一,滿16進一.

請參考 16進制加減法

二進制計算符號位溢位問題

學習該章首先要明確的點

  • 計算機中的位,表示的是CPU的尋址空間大小
  • 計算機中二進制(原碼)數字的首位為符號位,0表示正數,1表示負數
  • 這里也可以理解為數字表示的最大二進制位數

首先假如我們在一個字長為8位的計算機中進行運算 5 + 7

將它們轉換為2進制運算 00000101 + 00000111 = 00001100
00001100 = 12

那假如是 -5 + -7 呢

轉換為二進制運算就是,10000101 + 10000111 = 100001100

100001100 計算出來的二進制數變成了9位,8位下的計算計算機咋能表示9位呢,那把首位的1去掉就變成了00001100 = 12

額,為啥 兩個負數相加咋變成正數了,計算機是不是傻了,我們下節繼續

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/552624.html

標籤:其他

上一篇:4年經驗面試要15K,一問自動化卻以為我在刁難他?

下一篇:返回列表

標籤雲
其他(159144) Python(38143) JavaScript(25431) Java(18048) C(15227) 區塊鏈(8267) C#(7972) AI(7469) 爪哇(7425) MySQL(7191) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5871) 数组(5741) R(5409) Linux(5340) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4572) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2433) ASP.NET(2403) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1975) 功能(1967) Web開發(1951) HtmlCss(1937) python-3.x(1918) C++(1917) 弹簧靴(1913) xml(1889) PostgreSQL(1877) .NETCore(1861) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 程式員不得不了解的計算機進制轉換

    程式員不得不了解的計算機進制轉換 最近在備考軟考的軟體設計師考試,學到了關于計算機的資料表示,由于我是半路出家學的Java,導致計算機基礎知識很差,在這里記錄一下學習感受 為啥要用二進制 早期計算機的存盤介質是晶體管,晶體管根據電壓不同,只能表示2種狀態,也就是0和1 計算機使用二進制運算更加方便 ......

    uj5u.com 2023-05-16 19:53:05 more
  • 4年經驗面試要15K,一問自動化卻以為我在刁難他?

    金3銀4黃金期,我們公司也開始大量招人了,我這次是公司招聘的面試官之一,主要負責一些技術上的考核,這段時間還真讓我碰到了不少奇葩求職者 昨天公司的HR小席剛跟我吐槽:這個星期沒有哪天不加班的!各種招聘網站上的訊息源源不斷,連吃飯都要回訊息…… 看來最近大家跳槽的心都很活躍。之前我向HR要簡歷,他們都 ......

    uj5u.com 2023-05-16 19:27:32 more
  • Windows本地認證之NTML哈希和LM哈希

    Windows本地認證之NTML哈希和LM哈希 一、本地認證的流程 Windows的登陸密碼是儲存在系統本地的SAM檔案中的,在登陸Windows的時候,系統會將用戶輸入的密碼與 SAM檔案中的密碼進行對比,如果相同,則認證成功。 SAM檔案是位于C:\Windows\System32\config ......

    uj5u.com 2023-05-16 19:20:32 more
  • zabbix電話報警技巧

    Zabbix是一款開源的企業級監控系統,可以監控網路、服務器、應用程式等各種資源。在監控程序中,及時的告警通知是非常重要的,本文將介紹如何在Zabbix中配置電話、短信、飛書、釘釘、微信和郵件報警。 前置條件 已經安裝并配置好了Zabbix5以上版本監控系統。 提前下載電話短信報警媒介:https: ......

    uj5u.com 2023-05-16 12:36:36 more
  • 高效聯調,可靠發布!華為云推出CodeArts Release發布管理服務

    摘要:華為云全新推出CodeArts Release發布管理服務,旨在將華為多年形成的發布實踐外溢,幫助企業提升軟體發布質量和效率,降低生產環境的發布風險。 本文分享自華為云社區《高效聯調,可靠發布!華為云推出CodeArts Release發布管理服務》,作者:華為云頭條。 在專案研發迭代的程序中 ......

    uj5u.com 2023-05-16 12:36:19 more
  • Python Numpy 切片和索引(高級索引、布爾索引、花式索引)

    張量(Tensor)、標量(scalar)、向量(vector)、矩陣(matrix) Python Numpy 切片和索引(高級索引、布爾索引、花式索引) Python NumPy 廣播(Broadcast) NumPy(Numerical Python) 是 Python 語言的一個擴展程式庫, ......

    uj5u.com 2023-05-16 12:36:05 more
  • 一種通用的業務監控觸發方案設計

    業務監控是指通過技術手段監控業務代碼執行的最終結果或者狀態是否符合預期,實作業務監控主要分成兩步:一、在業務系統中選擇節點發送訊息觸發業務監控;二、系統在接收到mq訊息或者定時任務調度時,根據訊息中或者任務中的業務資料查詢業務執行的結果或狀態并與業務預期的結果相對比。目前供銷系統的方案如下: ......

    uj5u.com 2023-05-16 12:35:58 more
  • 基于Sentinel自研組件的系統限流、降級、負載保護最佳實踐探索

    作者:京東物流 楊建民 一、Sentinel簡介 Sentinel 以流量為切入點,從流量控制、熔斷降級、系統負載保護等多個維度保護服務的穩定性。 Sentinel 具有以下特征: 豐富的應用場景:秒殺(即突發流量控制在系統容量可以承受的范圍)、訊息削峰填谷、集群流量控制、實時熔斷下游不可用應用等。 ......

    uj5u.com 2023-05-16 12:35:53 more
  • Grafana系列-統一展示-11-Logs Traces無縫跳轉

    系列文章 Grafana 系列文章 概述 如前文 Grafana 系列 - 統一展示 -1- 開篇所述, Grafana 可以了解所有相關的資料--以及它們之間的關系--對于盡快根治事件和確定意外系統行為的真正來源非常重要。Grafana 允許團隊在一個地方對所有的資料進行無縫的可視化和跳轉。 最典 ......

    uj5u.com 2023-05-16 12:35:41 more
  • QueryFailedError: Connection Terminated

    簡單提一下這個問題,先講思路,后面再進行深入的探索和決議和發散 事情發生在筆者開發某個typescript服務端專案的程序中。筆者需要將一個基于typeorm的讀寫資料庫操作進行異步處理,也就是不阻塞當前執行緒。 大體是這樣的一個行文: // 用于typeorm的models檔案中 class Per ......

    uj5u.com 2023-05-16 12:35:31 more