CS420 课程笔记 P3 - 计数系统基础和 Hex, Decimal, Binary 进制

news2024/11/25 14:44:38

文章目录

    • Introduction
    • Inspiration
    • Why base systems
    • Binary & Hex
    • Counting in binary
    • Additional resources

Introduction

笔记作者 tips:这一节是关于进制的讲解,推荐观看原视频或学会二进制的读者跳过这一篇!

本节课将介绍基本的计算机系统,在计算机中数字可能通过这几种进制进行显示:

  • 二进制 Binary 0101 1010 1001 0011 1001 1100 1111 1100
  • 十进制 Decimal 1,519,623,420
  • 十六进制 Hex 5A939CFC

上节课我们见到二进制,现在我们要真正理解二进制和十六进制,学习 game hacking 几乎无法避免学习这样的数字进制系统。如果你要学习机器学习,你需要学习微积分、物理、统计学等等,但我们实际上要容易很多,我们只是再次学习如何计数

Inspiration

The papuan language Bukiyip… has tow different counting systems, one base-4 and another base-3. According to Bukiyip custom, which system you use depends on what objects you are counting.

上面的大致意思是:古代巴布亚新几内亚人的计数方式,会根据不同的计数对象,应用不同的计数方法,就是说,古代人可以熟练使用不同的进制方式,那么作为21世纪的程序工作者也当然可以学会二进制、十六进制

通常我们在十六进制数前面加上 0x,也就是 0x10 实际上等于十进制数字 16

同理,0b10 是二进制数,等于实际上的十进制数 2

当你看到数字 0x10 时,不要相信自己的眼睛,他不是实际上的数字 10 而是 16

Why base systems

为什么要学习二进制和十六进制?

  • Humans had a few systems in use throughout history – base 10 won
  • Computers need to store information as off/on or 0/1

人类使用十进制,而计算机使用二进制,学习二进制的重要性不言而喻。十六进制呢?因为十六进制和二进制之间有一些巧妙的联系,可以方便人类理解和管理二进制技术系统,以及一些历史原因。

为了学习二进制和十六进制,我们要忘记十进制,这是最难的,因为大多数人一生都盯着十进制数字,让我们注意一下如何数数:

  • 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
  • 当数到 10,我们就会回收数字,把10进位,然后再开始 0, 1, 2…
  • 也就是 10, 11, 12…

如果我们发明一个计数系统,给10一个符号,比如A是10,B是11等等,比如:

  • 8, 9, A, B, C…
  • 显然我们不可能给每个数字都发明一个符号,因为数字是无限的
  • 在十六进制中最大到符号 F,那么 0xF => 15,0x1F => 31

此时你应该可以理解:

  • 十进制数字 4294967295
  • 等于二进制数字 11111111111111111111111111111111
  • 等于十六进制数 FFFFFFFF

Binary & Hex

我们尝试把二进制数字以4个一组分割开:

  • F F F F 每个符号对应下面的4个一组
  • 1111 1111 1111 1111

如果我们修改其中的一组:

  • F A F F
  • 1111 1010 1111 1111

那么就会有一个 F 变成 A,十六进制数和4个二进制数之间有很强的相关性。人类无法很好地读取二进制数,而二进制数也不能很好的转换成十进制数,但二进制转换成十六进制是简单的,只需要分成 4个一组的块 即可。

Counting in binary

让我们学习如何用二进制计数:

  • 十进制数 999,如果加上1,会从最后一位开始进位,最终变成 1000
  • 对于二进制数字 01111,也是一样的,开始进位会变成 10000

你可以尝试使用二进制来从 0 数到 15,这样可以很快理解二进制

这里原视频的讲解配合动画,推荐查看原视频

你可以打开计算器,选择程序员模式,来查看这些变化,选择 HEX 输入十六进制,选择 BIN 输入二进制:

在这里插入图片描述
在这里插入图片描述

Additional resources

在上一节中我们知道,计算机里面以八个位 bit 为一组形成一个字节 byte

现在你应该可以理解在计算机内部:

01101000 01100001 01110100

这些二进制数字排布,对应的十六进制和十进制状态了,接下来我们用十六进制代替他们:

01 00 00 01 FF F0 F0 02 80 41 FF B0

日后我们将使用十六进制来看,不太可能用二进制了,除了一些典型的例外

  • 01 00 00 00 使用了 4 byte = 32 bit
  • 74 69 使用了 2 byte = 16 bit

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/970058.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

台球击球角度公式. 包含数学推导

第一步. 物理来分析. 第二步. 数学计算.

【jsvue】联合gtp仿写一个简单的vue框架,以此深度学习JavaScript

用 gtp 学习 Vue 生命周期的原理 lifecycle.js function Vue(options) {// 将选项保存到实例的 $options 属性中this.$options options;// 若存在 beforeCreate 钩子函数,则调用之if (typeof options.beforeCreate function) {options.beforeCreate.call(this);…

Qt 5.15编译及集成Crypto++ 8.7.0笔记

一、背景 为使用AES加密库(AES/CBC加解密),选用Crypto 库(官网)。   最新Crypto C库依次为:8.8.0版本(2023-6-25)、8.7.0(2022-8-7)和8.6.0(202…

MySQL数据库——多表查询(4)-实例练习、多表查询总结

目录 练习1 练习2 总结 1.多表关系 2.多表查询 进行案例练习之前,需要先增加一个表格 create table salgrade(grade int,losal int, -- 对应等级的最低薪资hisal int -- 对应等级的最高薪资 ) comment 薪资等级表;insert into salgrade values (1,0,3000)…

【高等数学1800】——一元函数微分学的应用

本文仅用于个人学习记录,使用的教材为汤家凤老师的《高等数学辅导讲义》。本文无任何盈利或者赚取个人声望的目的,如有侵权,请联系删除! 文章目录 一、入门练习二、基础练习 一、入门练习 本题需要注意在写凸区间时应该是闭区间。…

华为云云服务器评测|前端开发同学的初体验部署贪吃蛇!

文章目录 前言初配置初始化宝塔面板安装Nginx、上传项目修改nginx配置效果展示 前言 作为一名前端同学,我的技能和日常工作主要集中在用户界面的设计和交互上,与服务器产品相关的经验相对较少。正好看到了咱们华为云开展的评测活动,决定借着…

路径规划 | 图解Lazy Theta*算法(附ROS C++/Python/Matlab仿真)

目录 0 专栏介绍1 Theta*算法局限性2 Lazy Theta*算法原理3 Theta* VS. Lazy Theta*4 仿真实现4.1 ROS C实现4.2 Python实现4.3 Matlab实现 0 专栏介绍 🔥附C/Python/Matlab全套代码🔥课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图…

【nerfStudio】2-基于nerfStudio训练第一个NeRF模型

训练第一个NeRF模型 训练和运行查看器 以下内容将训练一个_nerfacto_模型: # 下载一些测试数据: ns-download-data nerfstudio --capture-name=poster # 训练模型 ns-train nerfacto --data data/nerfstudio/poster如果一切正常,应该会看到如下的训练进度: 在终端末尾的…

FPGA GTX aurora 8b/10b编解码 PCIE 板对板视频传输,提供2套工程源码加QT上位机源码和技术支持

目录 1、前言免责声明 2、我这里已有的 GT 高速接口解决方案3、GTX 全网最细解读GTX 基本结构GTX 发送和接收处理流程GTX 的参考时钟GTX 发送接口GTX 接收接口GTX IP核调用和使用 4、设计思路框架视频源选择ADV7611解码芯片配置及采集动态彩条视频数据组包GTX aurora 8b/10b数据…

基于永磁同步发电机的风力发电系统连接到可控的三相整流器(Simulink)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

机器学习——主成分分析PCA

机器学习——主成分分析PCA 文章目录 前言一、原理1.1. PCA介绍1.2. 算法步骤 二、代码实现2.1. 基于numpy实现2.2. 使用sklearn实现2.3. 观察方差分布2.4. 指定方差百分比求分量数 三、优,缺点3.1. 优点3.2. 缺点 总结 前言 当面对一个特征值极多的数据集时&#…

【核磁共振成像】观共享重建

目录 一、K空间关键孔技术-数据采集二、BRISK技术三、TRICKS技术四、实时成像和滑动窗重建五、心电触发电影(CINE)采集六、分段心脏采集和观共享 一、K空间关键孔技术-数据采集 对于笛卡尔K空间,一个相位编码行有时称为一个K空间观。一般情况下,每帧图像…

电源模块的降额曲线

大家好,这里是大话硬件。 今天想写这篇文章来分享在前段时间了解的一个知识点——电源模块的降额曲线。 为什么要写这个呢?对于专门做电源的同学来说,肯定觉得很简单。但是对于一个非电源行业的人来说,曲线应该如何解读&#xff…

春秋云镜 CVE-2018-1273

春秋云镜 CVE-2018-1273 Spring-data-commons 远程命令执行漏洞 靶标介绍 Spring Data是一个用于简化数据库访问,并支持云服务的开源框架,Spring Data Commons是Spring Data下所有子项目共享的基础框架。Spring Data Commons 在2.0.5及以前版本中&…

leetcode 1859.将句子排序

⭐️ 题目描述 &#x1f31f; leetcode链接&#xff1a;将句子排序 代码&#xff1a; class Solution { public:string sortSentence(string s) {vector<string> record;record.resize(9);string curString;for (auto val : s) {if (isdigit(val)) {record[ val - 0 - …

Linux内核基础知识

1.arm设备的启动过程 x86、Interl windows 启动过程: 电源 ---- >BIOS----->windows内核 --->文件系统(C盘、D盘) ---->应用程序启动嵌入式产品: 树莓派、mini2440、manopi、海思、RK(瑞芯微)等启动过程: 电源-->bootloader (引导操作系统启动) -->linux内…

【人工智能】—_一阶逻辑、量词的推理规则、一般化分离规则、合一、前向_反向链接算法、归结算法

文章目录 量词的推理规则全称量词实例化存在量词实例化 简化到命题逻辑推理Generalized Modus Ponens&#xff08;一般化分离规则&#xff09;举例 合一Forward chaining 前向链接算法示例 Backward chaining algorithm 反向链接算法一般FOL的FC/BC的完整性 归结算法归结推理规…

CEF内核和高级爬虫知识

(转)关于MFC中如何使用CEF内核&#xff08;CEF初解析&#xff09; Python GUI: cefpython3的简单分析和应用 cefpython3&#xff1a;一款强大的Python库 开始大多数抓取尝试可以从几乎一行代码开始&#xff1a; fun main() PulsarContexts.createSession().scrapeOutPages(&q…

PMP中常用英文术语

常用术语&#xff08;五&#xff09; Project 项目 为完成一个唯一的产品或服务的一种一次性努力。 Project Charter 项目许可证 由高级管理部门提供的一个文档&#xff0c;它给项目经理特权把组织的资源应用到项目工作中。 Project Communication Management 项目沟通管理 项目…

3D视觉测量:面对面的对称度 点对(附源码)

文章目录 0. 测试效果1. 基本内容2. 3D视觉测量对称度测量思路3. 代码实现4. 参考文章目录:3D视觉测量目录微信:dhlddxB站: Non-Stop_目标:通过3D视觉方法计算面对面的对称度0. 测试效果 数据说明:此测试点云是通过UG建模,Meshlab降采样得到,数据比较理想,仅作为测试使用…