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

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

2023-05-16 20:35:46 其他

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

最近在備考軟考的軟體設計師考試,學到了關于計算機的資料表示,由于我是半路出家學的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/552632.html

標籤:其他

上一篇:Windows本地認證之NTML哈希和LM哈希

下一篇:返回列表

標籤雲
其他(159152) 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 20:35:46 more
  • Windows本地認證之NTML哈希和LM哈希

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

    uj5u.com 2023-05-16 20:35:29 more
  • 分享一個國內可用的ChatGPT網站,免費無限制,支持AI繪畫 - AI 百曉

    背景 ChatGPT作為一種基于人工智能技術的自然語言處理工具,近期的熱度直接沸騰🌋。 作為一個AI愛好者,翻遍了各大基于ChatGPT的網站,終于找到一個免費!免登陸!手機電腦通用!國內可直接對話的ChatGPT,也有各種提供作業效率的工具供大家使用。 產品名稱 百曉生 網站地址 https:/ ......

    uj5u.com 2023-05-16 20:34:42 more
  • 淺析AIGC for MMKG

    摘要:AIGC和多模態知識圖譜(MMKG)中的知識獲取又是怎么實作的呢?他們之間有什么關聯呢? 本文分享自華為云社區《GPT-4發布,AIGC時代的多模態還能走多遠?系列之四 AIGC for MMKG》,作者:碼上開花_Lancer。 與傳統知識圖譜不同,MMKG以多模態資料作為源頭,從多方面描述 ......

    uj5u.com 2023-05-16 20:33:49 more
  • 統計學習方法筆記-感知機學習方法

    感知機(Perceptron) 1.感知機模型 1.1感知機定義 ? 輸入空間$ \mathcal{X} \subseteq \mathbb{R}^n$ ,輸出空間$\mathcal{Y}$={+1, -1} ; ? 輸入$x \in \mathcal{X}$表示的實體的特征向量,對應于輸入空間的點 ......

    uj5u.com 2023-05-16 20:20:32 more
  • 云端煉丹,算力白嫖,基于云端GPU(Colab)使用So-vits庫制作AI特朗

    人工智能AI技術早已深入到人們生活的每一個角落,君不見AI孫燕姿的歌聲此起彼伏,不絕于耳,但并不是每個人都擁有一塊N卡,沒有GPU的日子總是不好過的,但是沒關系,山人有妙計,本次我們基于Google的Colab免費云端服務器來搭建深度學習環境,制作AI特朗普,讓他高唱《國際歌》。 Colab(全名C ......

    uj5u.com 2023-05-16 20:08:59 more
  • 資料智能加持下,中小微企業告別“融資難”

    摘要:資料智能是一個跨學科的研究領域,它結合大規模資料處理、資料挖掘、機器學習、可視化等技術,為基于資料制定決策或執行任務提供有效智能支持。面對資料智能藍海,開發者該如何發力呢?賽道參與者該如何走向成功呢? 本文分享自華為云社區《讓資料應用更智能!華為云助力開發者重慶譽存打造數字金融綜合解決方案》, ......

    uj5u.com 2023-05-16 20:08:05 more
  • 資料結構之堆疊

    Stack 型別定義 堆疊是限定僅在表尾進行插入和洗掉操作的線性表,又稱為后進先出(last in first out)的線性表(LIFO結構),表尾稱為堆疊頂,表頭稱為堆疊底,不含元素則稱為空堆疊; 抽象資料型別: InitStack(&S) //構造空堆疊S DestoryStack(&S) //銷毀堆疊S ......

    uj5u.com 2023-05-16 20:06:58 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