进制之间的转换

文章目录

  • 编译过程
  • 进制转换
      • 1、进制的概念
      • 1.1 二进制
      • 1.2 八进制
      • 1.3 十六进制
  • 进制在程序中的表现方式
  • 十进制转二进制
      • 将十进制转换成二进制(除2反序取余法)
      • 二进制转十进制(权值法)
  • 八进制转十进制
      • 将十进制转换成八进制(除8反序取余法)
      • 八进制转十进制(权值法)
  • 十六进制转十进制
      • 将十进制转换成十六进制(除16反序取余法)
      • 十六进制转十进制(权值法)
  • 快速转换8421法则
  • 二进制快速转换八进制
  • 二进制快速转换十六进制
      • 16进制快速转换2进制
  • 浮点型数据转换成2进制

编译过程

1   gcc 源码文件.c -o 可执行文件.exe			-o生产exehelloWorld.c -o hell.exe  1、预处理  宏定义展开、头文件展开、删除注释gcc -E 源码文件 -o 生成文件.i       //gcc -E helloworld.c -o hello.i	.i编译文件
2、编译	检查语法,将文件转成汇编文件gcc -S 预处理生成的.i文件 -o 生成文件.s   //gcc -S hello.i -o hello.s    .s汇编文件
3、汇编	将汇编文件转成二进制文件gcc -c hello.s -o hello.o		//
4、链接	将C语言链接库链接到程序中gcc hello.o -o hello.exe  

进制转换

1、进制的概念

进制也就是进位制,是人们规定的一种进位方法。 对于任何一种进制—X进制,就表示某一位置上的数运算时是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。

1.1 二进制

二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。

1.2 八进制

八进制,Octal,缩写OCT或O,一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数字,逢八进1。一些编程语言中常常以数字0开始表明该数字是八进制。

1.3 十六进制

十六进制(英文名称:Hexadecimal),同我们日常生活中的表示法不一样,它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9,A-F对应10-15。

进制在程序中的表现方式

十进制以正常数字1-9开头,如123
八进制以数字0开头,如0123
十六进制以0x开头,如0x123
二进制C语言不能直接书写二进制数
二进制八进制十六进制十进制
0000
1111
10222
11333
100444
101555
110666
111777
10001088
10011199
101012A10
101113B11
110014C12
110115D13
111016E14
111117F15
10000181016

十进制转二进制

将十进制转换成二进制(除2反序取余法)

在这里插入图片描述

二进制转十进制(权值法)

从二进制的末尾依次乘以2的n次幂(n是从0 开始的)

小提示: 任何数的0次幂都等于1

​ 任何数的1次幂都等于本身

十进制的 123 使用上面的方法(除2 反序取余法)得到的二进制为1111011

将1111011 转成10进制

1 ∗ 2 0 + 1 ∗ 2 1 + 0 ∗ 2 2 + 1 ∗ 2 3 + 1 ∗ 2 4 + 1 ∗ 2 5 + 1 ∗ 2 6 = 123 1*2^0 + 1*2^1 +0*2^2+1*2^3+1*2^4+1*2^5+1*2^6=123 120+121+022+123+124+125+126=123

八进制转十进制

将十进制转换成八进制(除8反序取余法)

在这里插入图片描述

八进制转十进制(权值法)

从八进制的末尾依次乘以8的n次幂(n是从0 开始的)
3 ∗ 8 0 + 7 ∗ 8 1 + 1 ∗ 8 2 = 123 3*8^0+7*8^1+1*8^2 = 123 380+781+182=123

十六进制转十进制

将十进制转换成十六进制(除16反序取余法)

在这里插入图片描述

十六进制转十进制(权值法)

从十六进制的末尾依次乘以16的n次幂(n是从0 开始的)
11 ∗ 1 6 0 + 7 ∗ 1 6 1 = 123 11*16^0+7*16^1=123 11160+7161=123

快速转换8421法则

在对应的位置填1

4096204810245121286432168421二进制结果
1111011十进制的1231111011
1010010016410100100
11111011000200811111011000
11111101000202411111101000

二进制快速转换八进制

八进制的数和二进制数可以按位对应(八进制一位对应二进制三位)。

例:

将二进制从末尾3位一隔
十进制: 123
二进制: 1111011
八进制: 011   按照8431 法则  011 = 3111		按照8431 法则  111 = 71		按照8431 法则  011 = 1
转换结果为173   同理: 八进制转换二进制时也是将八进制每一位的值转换成32进制就可以了1731-------17-------1113-------011二进制结果就是: 1111011

二进制快速转换十六进制

十六进制的数和二进制数可以按位对应(十六进制一位对应二进制四位)。

例:

将二进制从末尾3位一隔
十进制: 123
二进制: 1111011
十六进制: 1011   按照8431 法则  011 = b0111		按照8431 法则  111 = 7
转换结果为7b

16进制快速转换2进制

7B
7----------111
B----------1011结果: 1111011

浮点型数据转换成2进制

十进制的小数转换成二进制:小数部分和2相乘,取整数,不足1取0,每次相乘都是小数部分,顺序看取整后的数就是转化后的结果。(小数位有多少位就乘以多少次) ;从上往下取值;

将小数部分依次乘以2 如果结果中整数部分值为1 取值为1 如果为0 值
为0 小数位数有多少位 乘多少次
double a = 123.4567;0.4567*2
0.9134		0*2
1.8268		1
0.8268    *2		
1.6536		1
0.6536*2
1.3072		10.4567 = 0111

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

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

相关文章

2024年腾讯云学生服务器活动详细说明、学生机购买流程

2024年腾讯云学生服务器优惠活动「云校园」,学生服务器优惠价格:轻量应用服务器2核2G学生价30元3个月、58元6个月、112元一年,轻量应用服务器4核8G配置191.1元3个月、352.8元6个月、646.8元一年,CVM云服务器2核4G配置842.4元一年&…

大模型相关算法模型学习

对Transformer中Add&Norm层的理解-CSDN博客 GPT模型总结【模型结构及计算过程_详细说明】_gpt结构-CSDN博客 推荐30个以上比较好的中文nlp意图识别模型源码?-CSDN博客 Few-shot learning(少样本学习)入门 - 知乎 (zhihu.com) 零次学习…

MySQL基础-----SQL语句之DML数据操作语句

目录 前言 一、添加数据 1.给指定字段添加数据 2.给全部字段添加数据 3.批量添加数据 二、修改数据 三、删除数据 前言 前面我们讲过了SQL语句中的DDL部分,以及可视化工具的下载安装使用,那么本期我们就接着学习SQL语句中的DML语句部分&#xff0c…

【python基础学习09课_装饰器、模块、文件】

一、项目的日志 1、日志意义与级别 1、日志的意义:项目的日志 -- 开发编写的,日志记录 -- 测试就是去查看日志信息(为了协助我们进行问题的定位) 可以根据日志,看是哪个应用的哪台机器,出现了什么问题&…

启动CMD/powershell命令窗口时,设置默认的python虚拟环境 in window10

启动CMD/powershell命令窗口时,设置默认的python虚拟环境 in window10 本文有两个目的: CMD命令窗口, 设置默认启动的python环境PowerShell命令窗口, 设置默认启动的python环境 CMD命令窗口, 设置默认启动的python环…

YOLOv5目标检测学习(2):运行一个yolo应用所需要配置的深度学习环境

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、CUDA、CUDNN的下载安装1.1 CUDA的安装1.2 cuDNN的配置 二、anaconda的安装1.卸载python2.安装anaconda 三、Pytorch、python虚拟环境安装1.创建虚拟环境2.安…

Easticsearch性能优化之索引优化

Easticsearch性能优化之索引优化 一、合理的索引设计二、合理的分片和副本三、合理的索引设置 对于性能优化,Elasticsearch(以下简称ES)的索引优化是提高性能的关键因素之一。合理的设计索引,合理的分片和副本以及合理的缓存设置等…

稀碎从零算法笔记Day11-LeetCode:有效的字母异位词

题型:字符串、哈希表、排序 链接:242. 有效的字母异位词 - 力扣(LeetCode) 来源:LeetCode 题目描述 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 …

第五十一天| 309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费

第四十八天| 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II-CSDN博客 第五十天| 123.买卖股票的最佳时机III、188.买卖股票的最佳时机IV-CSDN博客 Leetcode 309.最佳买卖股票时机含冷冻期 题目链接:309 最佳买卖股票时机含冷冻期 题干:给定一个…

想用Python做自动化测试?Python反射机制的应用!

通常,我们操作对象的属性或者方法时,是通过点“.”操作符进行的。例如下面的代码: class Person: type "mammal"def __init__(self, name): self.name namedef say_hi(self): print(Hello, my name is, self.n…

006-浏览器输入域名到返回

浏览器输入域名到返回 1、URL 输入2、DNS 域名解析3、建立 TCP 连接三次握手概念三次握手理解 4、发送 HTTP/HTTPS 请求5、服务器处理,并返回响应6、浏览器解析并渲染页面7、请求结束,端口 TCP 连接四次挥手概念四次挥手理解 1、URL 输入 2、DNS 域名解析…

[HackMyVM]靶场 Wild

kali:192.168.56.104 主机发现 arp-scan -l # arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:d2:e0:49, IPv4: 192.168.56.104 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.56.1 0a:00:27:00:00:05 …