进制的概念以及进制转换和计算

文章目录

1. 进制

十六进制(Hexadecimal)

十进制(Decimal)

八进制(Octal)

二进制(Binary)

示例

2. 进制转换表

3. 十六进制与二进制转换

4. 十进制与二进制的转换

5. 十进制与十六进制的转换

6. 在C语言中表示进制


1. 进制

计算机对数据的表示方式有多种进制,包括十六进制、十进制、八进制和二进制。

十六进制(Hexadecimal)
  • 表示形式:0xA 或 AH
  • 进制系统:逢十六进一
  • 组成:每一位由0到F组成,分别表示0到15的数值
  • 习惯用0x前缀表示或用H后缀表示
十进制(Decimal)
  • 表示形式:10 或 10D
  • 进制系统:逢十进一
  • 组成:每一位由0到9组成
  • 前缀无特殊表示方式,或用D后缀表示
八进制(Octal)
  • 表示形式:012 或 120
  • 进制系统:逢八进一
  • 组成:每一位由0到7组成
  • 习惯用0前缀表示,或用O后缀表示(注意:数字零0或字母O)
二进制(Binary)
  • 表示形式:0b1010 或 1010B
  • 进制系统:逢二进一
  • 组成:每一位由0或1组成
  • 习惯用0b前缀表示或用B后缀表示

示例

十六进制:0xA 或 AH

  • 0xA 表示十进制的10。
  • 0xF 表示十进制的15。

十进制:10 或 10D

  • 10 表示十进制的10。
  • 15D 表示十进制的15。

八进制:012 或 120

  • 012 表示十进制的10。
  • 017 表示十进制的15。

二进制:0b1010 或 1010B

  • 0b1010 表示十进制的10。
  • 0b1111 表示十进制的15。

2. 进制转换表

以下是一个进制转换表,展示了二进制、八进制、十进制和十六进制之间的转换关系。

二进制 (Binary)八进制 (Octal)十进制 (Decimal)十六进制 (Hexadecimal)
0000000
0001111
0010222
0011333
0100444
0101555
0110666
0111777
10001088
10011199
10101210A
10111311B
11001412C
11011513D
11101614E
11111715F

3. 十六进制与二进制转换

在嵌入式开发中,经常需要对十六进制与二进制进行转换。

二进制转换为十六进制

步骤:

  1. 将二进制数从右到左每四位分成一组。
  2. 每组二进制数转换为对应的十六进制数。

示例: 将二进制数 0b01101110101 转换为十六进制数。

  1. 从右到左每四位分组:

    011 0111 0101
  2. 补全不足的四位(在左边补0):

    0011 0111 0101
    
  3. 转换每组二进制数为十六进制:

    0011 -> 3
    0111 -> 7
    0101 -> 5
    

    最终得到十六进制数为 0x375

十六进制转换为二进制

步骤:将十六进制数从右到左每位转换为对应的四位二进制数。

示例: 将十六进制数 0xABC1 转换为二进制数。

1. 从右到左每位十六进制数转换为四位二进制数:

A -> 1010
B -> 1011
C -> 1100
1 -> 0001

2. 拼接所有二进制数:

1010 1011 1100 0001

 

4. 十进制与二进制的转换

十进制转换为二进制

步骤:

  1. 使用除2取余法,直到商为0。
  2. 将余数逆序排列。

示例: 将十进制数 45 转换为二进制数。

  1. 56 ÷ 2 = 28 余 0
  2. 28 ÷ 2 = 14 余 0
  3. 14 ÷ 2 = 7 余 0
  4. 7 ÷ 2 = 3 余 1
  5. 3 ÷ 2 = 1 余 1
  6. 1 ÷ 2 = 0 余 1

将余数逆序排列,得到:111000

二进制转换为十进制

步骤:将二进制数从右到左,按位展开,每位乘以对应的2的幂次方,然后求和。

示例: 将二进制数 101101 转换为十进制数。

从右到左计算:

  1. 最右边的0,对应的是 0× 2^0 = 0
  2. 倒数第二位0,对应的是 0× 2^1 = 0
  3. 倒数第三位0,对应的是 0× 2^2 = 0
  4. 倒数第四位1,对应的是 1× 2^3 = 8
  5. 倒数第五位1,对应的是 1× 2^4 = 16
  6. 最左边的1,对应的是 1× 2^5 = 32

将这些结果相加: 0+0+0+8+16+32=56

因此,二进制数 111000 转换回十进制数是 56

5. 十进制与十六进制的转换

十进制转换为十六进制

步骤:

  1. 使用除16取余法,直到商为0。
  2. 将余数逆序排列。

示例: 将十进制数 175 转换为十六进制数。

  1. 175 ÷ 16 = 10 余 15 (F)
  2. 10 ÷ 16 = 0 余 10 (A)

逆序排列余数:AF

结果:175 的十六进制表示为 0xAF

十六进制转换为十进制

步骤:将十六进制数从右到左,按位展开,每位乘以对应的16的幂次方,然后求和。

示例: 将十六进制数 0xAF 转换为十进制数。

  1. A× 16^1 + F×16^0
  2. 10×16+15×1
  3. 160+15=175

结果:0xAF 的十进制表示为 175

6. 在C语言中表示进制

十进制表示

十进制是默认的数字表示方式。在C语言中,直接写出数字就是十进制。

int decimal = 56;
printf("%d\n", decimal);  // 输出:56

二进制表示

C语言标准没有直接提供二进制文字表示的方法,但可以通过一些方式实现,比如宏定义或使用标准库。

#include <stdio.h>// 宏定义二进制常量
#define BIN(x) 0b##xint main() {int binary = BIN(111000);printf("%d\n", binary);  // 输出:56return 0;
}

八进制表示

八进制数字以 0 开头。在C语言中,前缀 0 表示八进制数。

int octal = 070;
printf("%o\n", octal);  // 输出:70
printf("%d\n", octal);  // 输出:56

十六进制表示

十六进制数字以 0x0X 开头。在C语言中,前缀 0x 表示十六进制数。

int hex = 0x38;
printf("%x\n", hex);  // 输出:38
printf("%d\n", hex);  // 输出:56

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

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

相关文章

中国各省金融监管水平-测算数据(2006-2022年)

金融监管水平是指政府及其指定机构通过法律法规对金融机构及其市场行为进行监督、管理与规范的能力和效率&#xff0c;以维护金融体系稳定、保护投资者和消费者权益、促进公平竞争及支持经济增长。衡量金融监管水平的指标多样&#xff0c;常见的一种计算方式是金融监管支出与金…

[AI 大模型] Google Gemini

文章目录 [AI 大模型] Gemini简介模型架构发展新技术和优势示例 [AI 大模型] Gemini 简介 Google Gemini 是 Google 最新推出的多模态 AI 大模型&#xff0c;旨在提升 AI 在各个领域的应用能力。Gemini 能够处理文本、图像、音频、视频和代码等多种数据类型&#xff0c;展现出…

模拟考试小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;科目管理&#xff0c;复习资料管理&#xff0c;参考文献管理&#xff0c;用户管理&#xff0c;留言板管理&#xff0c;论坛管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;复习资料&#xf…

128陷阱详解(从源码分析)

1、128陷阱描述 Integer 整型 -128~127 超过这个范围&#xff0c;比较会不准确 例子 public static void main(String[] args) {Integer a128;Integer b128;Integer e127;Integer f127;System.out.println(ab); //输出falseSystem.out.println(a.equals(b)); //输出trueS…

PCI DSS是什么?

PCI DSS&#xff0c;全称为Payment Card Industry Data Security Standard&#xff08;支付卡行业数据安全标准&#xff09;&#xff0c;是由支付卡行业安全标准委员会&#xff08;PCI Security Standards Council&#xff09;制定的一套安全标准&#xff0c;旨在保护信用卡信息…

深入解析网络爬虫技术:从入门到进阶

目录 引言什么是网络爬虫网络爬虫的工作原理网络爬虫的基本类型如何设计一个网络爬虫常用的网络爬虫工具和框架实际案例分析网络爬虫的法律与伦理问题如何防范恶意爬虫总结 引言 在信息爆炸的时代&#xff0c;互联网上每天都会产生大量的数据。这些数据分散在各种网站和平台…

【十八】【QT开发应用】标签页QTabWidget的常见用法

#include "widget.h" // 包含自定义的widget头文件 #include <QHBoxLayout> // 包含QHBoxLayout头文件&#xff0c;用于水平布局 #include <QTabWidget> // 包含QTabWidget头文件&#xff0c;用于创建标签页控件 #include <QDebug> // 包含QDebug头…

数据中心的智能负载组,为什么以及做什么?

停电会因停机而造成巨大损失。根据电力研究所 &#xff08;EPRI&#xff09; 的数据&#xff0c;98% 的停电持续时间不到 10 秒。但这10秒是毁灭性的。由于每分钟闲置的成本约为 5,600 美元&#xff0c;公司投资于确保其基础设施连续性的系统。负载组是测试和确保所需连续性的基…

Python面试宝典第8题:二叉树遍历

题目 给定一棵二叉树的根节点 root &#xff0c;返回它节点值的前序遍历。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,2,3] 示例 2&#xff1a; 输入&#xff1a;root [] 输出&#xff1a;[] 示例 3&#xff1a; 输入&#xff1a;root […

设计模式的一点理解

设计模式需要变化的角度看问题&#xff0c;思考和应对未来可能发生的变化&#xff1b; 在设计模式中&#xff0c;“封装变化”是一个核心原则&#xff0c;它强调了软件设计应该关注分离那些可能会变化的部分&#xff0c;以便在不影响系统其余部分的情况下&#xff0c;容易地修改…

谷歌学术与百度学术界面设计之比较:简约与华丽的对决

关于学术搜索&#xff0c;众所周知&#xff0c;谷歌学术与百度学术乃是两大翘楚选手&#xff0c;分别源自美中两地&#xff0c;竞相问鼎学术领域之巅。今番&#xff0c;笔者将为诸位剖析这两款学术搜索引擎之异同及优劣。 界面设计&#xff1a;谁更吸引眼球&#xff1f; 接下…

怎样在 PostgreSQL 中优化对大数值类型数据的计算?

文章目录 一、选择合适的数据类型二、索引优化三、查询语句优化四、数据库配置调整五、使用扩展功能六、示例七、总结 在 PostgreSQL 中处理大数值类型数据&#xff08;例如 BIGINT、NUMERIC 等&#xff09;的计算时&#xff0c;可能会遇到性能瓶颈。为了优化这些计算&#xff…

深度探讨:Facebook在全球范围内的社会影响力

Facebook作为全球最大的社交平台之一&#xff0c;不仅改变了人们的社交方式&#xff0c;还对全球社会产生了深远的影响。本文将从多个角度探讨Facebook在全球范围内的社会影响力&#xff0c;深入分析其对个人、社区和全球社会的多方面影响。 1. 信息传播与社交互动的革新 Fac…

云原生监控-Kubernetes-Promethues-Grafana

云原生监控-Prometheus 作者:行癫(盗版必究) 引读:本文章所涉及到技术点包括Prometheus、Grafana、Kuebrnetes;Prometheus基于外部构建采集并监控Kubernetes集群以及集群中的应用,例如使用mysql-node-exporter、nginx-node-exporter采集Kuebrnetes集群中的应用数据,使用…

语言模型的进化:从NLP到LLM的跨越之旅

在人工智能的浩瀚宇宙中&#xff0c;自然语言处理&#xff08;NLP&#xff09;一直是一个充满挑战和机遇的领域。随着技术的发展&#xff0c;我们见证了从传统规则到统计机器学习&#xff0c;再到深度学习和预训练模型的演进。如今&#xff0c;我们站在了大型语言模型&#xff…

音频demo:将PCM数据和Speex数据进行相互编解码

1、README a. libspeex移植步骤 源码下载地址&#xff1a;https://xiph.org/downloads/ 或 https://www.speex.org/downloads/ 或 https://www.linuxfromscratch.org/blfs/view/svn/multimedia/speex.html tar xzf speex-1.2.1.tar.gzcd speex-1.2.1/./configure --prefix$PW…

政安晨:【Keras机器学习示例演绎】(五十三)—— 使用 TensorFlow 决策森林进行分类

目录 简介 设置 准备数据 定义数据集元数据 配置超参数 实施培训和评估程序 实验 1&#xff1a;使用原始特征的决策森林 检查模型 实验 2&#xff1a;目标编码决策森林 创建模型输入 使用目标编码实现特征编码 使用预处理器创建梯度提升树模型 训练和评估模型 实验…

社区6月月报 | Apache DolphinScheduler重要修复和优化记录

各位热爱Apache DolphinScheduler的小伙伴们&#xff0c;社区6月月报更新啦&#xff01;这里将记录Apache DolphinScheduler社区每月的重要更新&#xff0c;欢迎关注。 月度Merge Stars 感谢以下小伙伴上个月为Apache DolphinScheduler所做的精彩贡献&#xff08;排名不分先后…

矩阵式键盘最小需要多少个IO驱动

1. 概述 矩阵式键盘由于有其占用硬件资源少的优点有着极其广泛的应用&#xff0c;如PC键盘、电话按键、家用电器等等这类产品.矩阵键盘的基本原理如下所示&#xff08;仅是原理示例&#xff0c;实际实现上还会为每个按键加上防倒流的二极管解决“鬼影”问题&#xff09;&#x…

Windows下编译OpenSSL静态库

目录 1. 版本与下载地址 2. 下载与安装VS2015 3. 下载与安装Perl 4. 测试ActivePerl是否安装正确 5. 下载OpenSSL 6. 编译32位OpenSSL静态库 6.1 解压openssl-1.0.2l.tar.gz 6.2 打开VS2015 x86本机工具命令提示符 6.3 输入命令进入到openssl的目录中 6.4 执行配置命…