当前位置: 首页 > article >正文

计算机基础:二进制基础12,十进制数转换为十六进制

专栏导航

本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏,故划分为两个专栏导航。读者可以自行选择前往哪个专栏。

(一)WIn32 专栏导航

上一篇:计算机基础:二进制基础11,十六进制的位基和位权

回到目录

下一篇:无

(二)MFC 专栏导航

上一篇:计算机基础:二进制基础11,十六进制的位基和位权

回到目录

下一篇:无

本节前言

上一节,。我们讲解了十六进制的位基与位权,也讲解了求解一个十六进制整数所对应的十进制数

本节,我们来讲解如何将一个十进制数转换为一个十六进制数。

本节内容,你可以参考本系列的前面的一篇文章,文章连接如下。

计算机基础:二进制基础04,十进整制数转化为二进制整数-CSDN博客

好了,我们开始本节的讲解。

一.    短除法

对于短除法,有的人可能接触过。有的人,可能没有接触过。假定,你没有接触过短除法。

我们先来看一看一般的除法。

一般的除法,使用的是下面的符号。

图1,普通除法符号

短除法,使用的是另外的符号。短除法的运算符号如下图所示。

图2,短除法符号

我们先来做一个简单的短除法,大家由此来体会短除法的使用方法。

图3

图3演示的,是19除以7的计算式。我们知道,19除以7,被除数是19,除数是7,商是2,余数是5。

在图中,我们看到,被除数位于短除法符号所包着的位置。除数位于左边,商位于横线下面,余数位于右边,且和短除法符号隔开一点距离。

短除法还可以连用。连用的方法,我们在下一分节来演示。

在这里,我们所看到的,是短除法的基本的使用方法。

二.     十进制转换为十六进制

在演示具体的运算过程之前,我还是将十六进制的 A 到 F 与十进制的对比表格列出来。

十六进制ABCDEF
十进制101112131415

然后呢,我们来看一个例题。

图4

图4里面,就是连续使用短除法的例子。首先呢,用被除数 61340 除以 16,结果呢,商为 3833,余数为 12,十进制的 12 对应着十六进制的 C 。商 3833 写在被除数 61340 的下面,余数 12 写在被除数 61340 的右边,十进制余数 12 所对应的十六进制 C 写在最右边。

接下来,上一步的商 3833 作为新的短除法的被除数,然后呢,除数依旧是 16。3833 除以 16,商为 239,余数为 9 。商 239 写在 被除数 3833 的下面,余数 9 写在被除数 3833 的右边 。

接下来,上一步的商 239 作为新的短除法的被除数,除数仍旧为 16 。239 除以 16,商是 14,余数是 15,十进制的 15 对应着十六进制的 F 。商 14 写在被除数 239 的下面,余数 15 写在被除数 239 的右边,十进制余数 15 所对应的十六进制数 F 写在最右边。

接下来,上一步的商 14 作为新的短除法的被除数,除数依旧为 16 。14 除以 16,商是 0,余数是 14,十进制的 14 对应着十六进制的 E 。商 0 写在被除数 14 的下面,余数 14 写在被除数 14 的右边,十进制余数 14 所对应着的十六进制数 E 写在最右边。

当商为0的时候,连续短除法结束。

当短除法结束的时候,我们将余数连起来。

首先呢,准备好一个新的记录数字的地方。

将最下面的余数写在新纪录位置的最左边。然后呢,将第二最下面的余数写在新纪录位置里,从左数的第二个数位上。然后呢,将第三下面的余数,写在新纪录位置从左数的第三个数位上。依次类推,直到我们将最上面的余数写在最右边为止。

注意,我们在连续短除法中,遇到过同一个余数的两种表达方式,十进制与十六进制。比如说,61340 除以 16,余数的十进制形式 为 12,余数的十六进制形式为 C 。连续短除法中,我们将这两种都给标记出来了。然而,在自下而上,连缀余数的时候,我们要连接的,是十六进制的形式。

因此,对于 61340 连续短除 16 的运算,余数连接的结果为 EF9C 。

我们将 EF9C 视为一个十六进制数,并加上前缀【0x】,则【0xEF9C】便是十进制数 61340 对应的十六进制数。

像这种地,使用连续短除法,将一个待转换的十进制整数,每次都除以 16,待到商为 0 的时候结束短除,从下往上,依次连缀余数,以求得对应的十六进制数的方法,叫做除 16 取余法。

注意,除 16 取余法的停止短除的条件是:商为 0

通过使用除 16 取余法,可以将任意的一个十进制数,转换为十六进制数。

三.    除 k 取余法

我们在学习二进制的时候,我们学习了,用除 2 取余法,将十进制数转换为二进制数。

我们在学习八进制的时候,我们学习了,用除 8 取余法,将十进制数转换为八进制数。

在本节,我们学习了,用除 16 取余法,将十进制数转换为十六进制数。

其实,我们也可以将类似的方法推广开来。比如说,用除 9 取余法,可以将十进制数转换为九进制数。用除 6 取余法,可以将一个十进制数转换为六进制数。

除2取余法,除8取余法,除16取余法等等的方法,均是将一个十进制转换为某一进制数的方法。我们将这类方法,统称为除 k 取余法。

k 等于多少,则连续短除法中,连续除以的数,便是多少,最终转换的进制,也会是这个除数。

除 2 取余法,得到的是二进制数。

除 3 取余法,得到的是三进制数。

除 8 取余法,得到的是八进制数。

除 k 取余法,得到的是 k 进制数。

四.    一个例题

之前,在讲解二进制和八进制的时候,我都是设置了两个例题的。这次,我偷个懒,只设置一个例题。

例题1    将十进制数 39617 转为十六进制数

图5

由图5可知,十进制数 39617 对应的十六进制数是 9AC1。

将结果加上十六进制前缀【0x】,则最终的结果为 0x9AC1 。

例题2     将十进制数 29637 转换为十六进制数

图6

由图5可知,十进制数 29637 对应的十六进制数是 73C5。

将结果加上十六进制前缀【0x】,则最终的结果为 0x73C5 。

结束语

到了这里,本节就结束了。同时,对于十六进制数的讲解乃至对于整个的二进制,八进制和十六进制的讲解,已接近尾声。

希望大家能够学好进制的基础知识。

下一节,我们将结束进制的学习。

专栏导航

本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏,故划分为两个专栏导航。读者可以自行选择前往哪个专栏。

(一)WIn32 专栏导航

上一篇:计算机基础:二进制基础11,十六进制的位基和位权

回到目录

下一篇:无

(二)MFC 专栏导航

上一篇:计算机基础:二进制基础11,十六进制的位基和位权

回到目录

下一篇:无

相关文章:

计算机基础:二进制基础12,十进制数转换为十六进制

专栏导航 本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏,故划分为两个专栏导航。读者可以自行选择前往哪个专栏。 (一)WIn32 专栏导航 上一篇:计算机基础:二进制基础11,十六进制的位基…...

SpringCloud系列教程(十四):Sentinel持久化

Sentinel之前已经搭建和应用成功了,但是它有一个很大的缺点就是官方没有提供持久化的方案,从项目源码上看感觉这款工具也没有完成的太好,所以需要我们去对它进行二次开发。要补充的功能大概如下: 1、将Sentinel接入nacos中&#…...

Slider,InputField,Scroll View,Scrollbar及Layout组件

Slider组件 Fill Rect:填充滑动条选中区域的背景图部分 Handle Rect:滑动条的球 Direction:滑动条的滑动方向 Min Value:起始位置的数值(浮点数) Max Value:结束位置的数值(浮点数) Whole Numbers:必须为整数(布尔…...

ollama注册自定义模型(GGUF格式)

文章目录 ollama注册自定义模型(GGUF格式)下载模型注册模型(GGUF格式) ollama注册自定义模型(GGUF格式) 需要全程开启ollama nohup ollama serve > ollama.log 2>&1 &需要注意,尽管手动下载的GGUF格式模…...

【算法】 区间合并(附蓝桥杯真题) python

步骤 1.先将所有区间按左端点排序 2.从前往后扫一遍&#xff0c;维护当前正在合并的区间[st, ed] 3.依次检查每个区间[l, r]&#xff0c; 若 l > ed,将[st, ed]加入 ans , 更新st l,ed r 若 l < ed &#xff0c;更新ed max(ed, r) 时间复杂度 O(nlogn) 模板 https:/…...

关于重构分析查询界面的思考(未完)

业务系统里&#xff0c;查询界面很常见&#xff0c;数据分析场景需求普遍而迫切&#xff0c;而新的技术也在不断出现&#xff0c;很有必要重构分析查询界面。 查询筛选 为了尽可能从数据中发现&#xff0c;需要尽可能地将查询条件添加进来&#xff0c;可这样&#xff0c;查询…...

机器人技能列表

一、机器人制作基础入门 &#xff08;一&#xff09;机器人概述 1.机器人的定义与分类 2.机器人的发展历程与现状 3.机器人在各领域的应用案例 &#xff08;二&#xff09;必备工具与材料 4.常用电子工具介绍&#xff08;万用表、电烙铁等&#xff09; 5.机械加工工具&…...

五大基础算法——分治算法

分治算法 是一种通过将问题分解为多个规模较小的子问题&#xff0c;递归解决子问题&#xff0c;然后将子问题的解合并为原问题解的算法思想。它通常包含三个步骤&#xff1a;分解&#xff08;Divide&#xff09;、解决&#xff08;Conquer&#xff09; 和 合并&#xff08;Comb…...

HarmonyOS NEXT 声明式UI语法学习笔记-创建自定义组件

基础语法概述 ArkTS的基本组成 装饰器&#xff1a;用于装饰类、结构、方法以及变量&#xff0c;并赋予其特殊含义。如上图都是装饰器&#xff0c;Component表示自定义组件&#xff0c;Entry表示表示自定义组件的入口组件&#xff0c;State表示组件中的状态变量&#xff0c;当状…...

补充二分LIS

B3637 最长上升子序列 题目描述 这是一个简单的动规板子题。 给出一个由 n ( n ≤ 5000 ) n(n\le 5000) n(n≤5000) 个不超过 1 0 6 10^6 106 的正整数组成的序列。请输出这个序列的最长上升子序列的长度。 最长上升子序列是指&#xff0c;从原序列中按顺序取出一些数字排…...

用户模块——握手验证

1. 引言 在现代 Web 应用中&#xff0c;WebSocket 以其全双工通信、低延迟、减少 HTTP 开销等优势&#xff0c;被广泛应用于即时通讯、在线游戏、实时数据推送等场景。然而&#xff0c;在涉及用户认证时&#xff0c;WebSocket 存在一个常见问题——每次刷新页面都会重新建立 We…...

97.HarmonyOS NEXT跑马灯组件教程:基础概念与架构设计

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; HarmonyOS NEXT跑马灯组件教程&#xff1a;基础概念与架构设计 1. 跑马灯组件概述 跑马灯&#xff08;Marquee&#xff09;是一种常见的UI组件&a…...

81.HarmonyOS NEXT 状态管理与响应式编程:@Observed深度解析

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; HarmonyOS NEXT 状态管理与响应式编程&#xff1a;Observed深度解析 文章目录 HarmonyOS NEXT 状态管理与响应式编程&#xff1a;Observed深度解析…...

【Agent】OpenManus-Agent架构详细分析

各组件详细设计见&#xff1a; BaseAgent&#xff1a;BaseAgentReActAgent&#xff1a;ReActAgentToolCallAgent&#xff1a;ToolCallAgent具体Agent实现&#xff1a;具体AgentMemory数据结构&#xff1a;Memory 1. 智能体层次结构 OpenManus 采用了一个多层次的智能体继承结…...

股指期货有卖不出去的时候吗?

在股指期货的交易世界里&#xff0c;很多人都有这样的疑问&#xff1a;股指期货会不会有卖不出去的时候呢&#xff1f;答案是会的&#xff0c;下面咱们就来详细唠唠为啥会出现这种情况。 市场极端行情下难以卖出 1.跌停限制&#xff1a;股指期货和股票一样&#xff0c;也有涨…...

前端Html5 Canvas面试题及参考答案

目录 Canvas 元素的默认尺寸是多少?如何正确设置其宽高以避免图像拉伸? 如何获取 Canvas 的 2D 上下文对象?3D 上下文支持哪些技术? canvas.width 与 canvas.style.width 的区别是什么? Canvas 支持的图像格式有哪些?如何将 Canvas 转换为 Base64 图片? Canvas 中如…...

【ES6】03-Set + Map

本文介绍两种集合 set map 的操作和方法。 目录 1. Set 1.1 set基本使用 1.2 add 1.3 delete 1.4 has 1.5 size 1.6 set转换为数组 1.7 拓展运算符 1.8 for...of 1.9 forEach 1.10 set给数组去重 2. Map 2.1 创建map集合 2.2 set添加元素 2.3 delete删除元素 …...

Java缓存String(字符串常量池)、Integer (-128 到 127 )

对问题的解释 1. “字符串常量池存储的是string对象的直接引用&#xff0c;而不是直接存放的对象&#xff0c;是一张string table” 的含义 这句话可以从以下几个方面理解&#xff1a; (1) 字符串常量池的存储内容 直接引用&#xff1a;字符串常量池中存储的是指向实际 Stri…...

消息队列的特性与使用场景:Kafka、ActiveMQ、RabbitMQ与RocketMQ的深度剖析

在分布式系统和微服务架构中&#xff0c;消息队列是实现服务间通信和解耦的核心组件。Kafka、ActiveMQ、RabbitMQ和RocketMQ是当前最受欢迎的消息队列解决方案&#xff0c;它们各自具有独特的特性和适用场景。本文将从特性和使用场景两个维度进行对比分析&#xff0c;帮助读者更…...

开发、科研、日常办公工具汇总(自用,持续更新)

主要记录汇总一下自己平常会用到的网站工具&#xff0c;方便查阅。 update&#xff1a;2025/2/11&#xff08;开发网站补一下&#xff09; update&#xff1a;2025/2/21&#xff08;补充一些AI工具&#xff0c;刚好在做AI视频相关工作&#xff09; update&#xff1a;2025/3/7&…...

解决VueI18n使用浏览器插件翻译后,切换国际化失效的问题

问题复现 在使用Vue-i18n对页面进行国际化的时候&#xff0c;使用浏览器翻译插件&#xff08;如腾讯翻译&#xff09;后&#xff0c;切换国际化语言&#xff0c;随后当我们关闭浏览器翻译插件后&#xff0c;再次切换国际化语言&#xff0c;原来被翻译的文字无法正确切换 出现…...

HTML5 drag API实现列表拖拽排序

拖拽API&#xff08;Drag and Drop API&#xff09;是HTML5提供的一组功能&#xff0c;使得在网页上实现拖放操作变得更加简单和强大。这个API允许开发者为网页元素添加拖拽功能&#xff0c;用户可以通过鼠标将元素拖动并放置到指定的目标区域。 事件类型 dragstart&#xff1…...

改变一生的思维模型【11】升维

升维思维模型&#xff1a;突破认知局限的破局法则 一、定义与核心逻辑 升维思维是通过增加分析维度&#xff0c;将问题投射到更高认知层次寻找解决方案的思考方式。其本质是跳出原有竞争维度&#xff0c;在更广阔的空间重构游戏规则。核心逻辑在于&#xff1a;当低维战场陷入…...

【动手学深度学习】#2线性神经网络

主要参考学习资料&#xff1a; 《动手学深度学习》阿斯顿张 等 著 【动手学深度学习 PyTorch版】哔哩哔哩跟李牧学AI 目录 2.1 线性回归2.1.1 线性回归的基本元素线性模型损失函数解析解随机梯度下降 2.1.3 最大似然估计 2.2 线性回归从零开始实现2.2.1 生成数据集2.2.2 读取数…...

计算机网络——NAT

一、什么是NAT&#xff1f; NAT&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09; 是一种将 私有IP地址 与 公有IP地址 相互映射的技术&#xff0c;主要用于解决IPv4地址不足的问题。它像一名“翻译官”&#xff0c;在数据包经过路由器或防火墙时…...

Stable Deffusion--常见模型插件详解

1.Checkpoint大模型 Checkpoint 是生成图像的基础模型&#xff0c;决定了整体画风如动漫、写实、机甲等。它是必选项&#xff0c;所有图像生成必须基于一个主模型。文件体积较大通常 1.5GB 以上&#xff0c;格式为 .ckpt 或 .safetensors。 存放位置为&#xff1a;\models\Sta…...

防重复提交详解:从前端Vue到后端Java的全面解决方案

防重复提交详解&#xff1a;从前端Vue到后端Java的全面解决方案 一、重复提交问题概述 在Web应用开发中&#xff0c;表单重复提交是一个常见问题&#xff0c;可能导致&#xff1a; 数据库中出现重复记录重复执行业务逻辑&#xff08;如多次扣款&#xff09;系统资源浪费用户…...

同一子网通信

添加交换机后的通信流程 1. 同一子网内&#xff08;使用交换机&#xff09; 判断是否在同一子网&#xff1a; 主机A通过子网掩码判断主机B的IP地址是否属于同一子网。若在同一子网&#xff0c;主机A需要通过ARP获取主机B的MAC地址。 ARP请求&#xff08;广播&#xff09;&…...

快速迭代:利用 nodemon 和其他工具实现 Express.js 热更新

在开发 Express.js 应用时&#xff0c;热更新&#xff08;Hot Reloading&#xff09;可以显著提升开发效率&#xff0c;因为它允许你在修改代码后立即看到效果&#xff0c;而无需手动重启服务器。以下是几种实现热更新的方法和工具&#xff0c;帮助你在开发过程中更高效地工作。…...

BUG日志:Maven项目启动报错(文件名或者文件扩展名过长)

Bug日志编号&#xff1a;[Maven-001] 标题&#xff1a;Windows系统下Maven项目因路径过长导致命令行执行失败 1. 问题描述 现象&#xff1a;执行mvn clean install时报错&#xff1a; The input line is too long 或 The filename or extension is too long触发条件&#xf…...