首页 > 其他分享 >【软考】进制转换笔记

【软考】进制转换笔记

时间:2024-09-17 15:45:36浏览次数:8  
标签:10 进制 十六进制 二进制 16 软考 笔记 权数

学习参考:

https://www.bilibili.com/video/BV1rc411t71D?p=2

  

一、十进制

数 74356.234 按十进制算法为 

整数部分: 7 位权为数4,4 位权数为3,3位权数为2,5 位权数为1,6位权数为0

小数部分:2 位权数为 -1,3 位权数为 -2,4位权数 -3

进制为10,公式是 进制N的位权数次方所得

整数部分则值为 7 * 104 + 4 * 103 + 3 * 102 + 5 * 101 + 6 * 100 = 74356

小数部分则值为 2 * 10-1 + 3 * 10-2 + 4 * 10-3 = 0.234

 

二、进制迭代 N进制 -> 十进制

位权数的整数部分为N,小数部分为M,进制为R,位权占位值为K,可以得出任意进制转换为十进制的公式

整数部分 K * RN + K * R(N-1) + K * R(N-2) + ... + K * R0

小数部分 K * R-1 + K * R-2 .... + K * R-M

 

二进制样例:

二进制数 100010101.001 转换为十进制

整数部分 1 * 28 + 1 * 24 + 1 * 22 + 1 * 20 = 256 + 16 + 4 + 1 = 277 (0占位所得值还是0,忽略此部分)

小数部分 1 * 2-3 = 0.125

合并为 277.125

 

十六进制样例:

十六进制数 AE86.05 转换为十进制

整数部分 (A) 10 * 163 + (E)14 * 162 + 8 * 161 + 6 * 160 = 40960 + 3584 + 128 + 6 = 44,678

小数部分 5 * 16-2 = 5 * 0.00390625 = 0.01953125

 合并为 44678.01953125

三、常用进制数值表

次方值 12 11 10 9 8 7 6 5 4 3 2 1 0 -1 -2 -3 -4
2次方 2 ^ 12 2 ^ 11 2 ^ 10 2 ^ 9 2 ^ 8 2 ^ 7 2 ^ 6 2 ^ 5 2 ^ 4 2 ^ 3 2 ^ 2 2 ^ 1 2 ^ 0 2 ^ -1 2 ^ -2 2 ^ -3 2 ^ -4
  4096 2048 1024 512 256 128 64 32 16 8 4 2 1 0.5 0.25 0.125 0.0625
8次方 8 ^ 12 8 ^ 11 8 ^ 10 8 ^ 9 8 ^ 8 8 ^ 7 8 ^ 6 8 ^ 5 8 ^ 4 8 ^ 3 8 ^ 2 8 ^ 1 8 ^ 0 8 ^ -1 8 ^ -2 8 ^ -3 8 ^ -4
  68719476736 8589934592 1073741824 134217728 16777216 2097152 262144 32768 4096 512 64 8 1 0.125 0.015625 0.001953125 0.000244141
16次方 16 ^ 12 16 ^ 11 16 ^ 10 16 ^ 9 16 ^ 8 16 ^ 7 16 ^ 6 16 ^ 5 16 ^ 4 16 ^ 3 16 ^ 2 16 ^ 1 16 ^ 0 16 ^ -1 16 ^ -2 16 ^ -3 16 ^ -4
  2.81475E+14 1.75922E+13 1.09951E+12 68719476736 4294967296 268435456 16777216 1048576 65536 4096 256 16 1 0.0625 0.00390625 0.000244141 1.52588E-05

 

四、十进制到任意进制的转换

1、十进制到二进制(短除法)

将 86 变为二进制表示

用 86 / 2 = 43 余数 0,

43 / 2  = 21 余数 1,

21 / 2 = 10 余数 1,

10 / 2 = 5 余数 0,

5 / 2 = 2 余数 1,

2 / 2 = 1 余数 0,

1 / 2 = 0 余数 1

从最后余数向前计数,1010110

 

2、二进制到十六进制

我们可以发现 二进制一个4位值就可以表示十六进制的1位值

起始 0000 对应十六进制的0,结束 1111 对应十六进制的F

所以一个二进制值,可以通过补位的方式来转换为十六进制

 

例如: 10111110.0111 转换

整数部分:10111110 = [ 1011 ] 和 [ 1110 ]

1011 = 1 * 2^3 +  1 * 2^1 + 1 = 11 转换为十六进制为 B

1110 = 1 * 2^3 + 1 * 2^2 + 1 * 2^1 = 14 转换为十六进制为 E

小数部分:0111

0111 = 1 * 2^2 + 1 * 2^1 + 1 =  7

合并为 BE.7

 

3、同理二进制到八进制

二进制的三位值可匹配八进制的一位值, 同理可得四进制就是匹配二进制的二位值

还是用 10111110.0111 转换

整数部分:10111110 = [ 010 ]  [ 111 ]  [ 110 ]

010 = 1 * 2^1 = 2

111 = 1 * 2^2 + 1 * 2^1 + 1 = 7

110 = 1 * 2^2 + 1 * 2^1 = 6

小数部分:0111 = [ 011 ] [ 100 ]

011 = 1 * 2^1 + 1 * 2^0 = 3

100 = 1 * 2^2 = 4

 合并为 276.34

 

标签:10,进制,十六进制,二进制,16,软考,笔记,权数
From: https://www.cnblogs.com/mindzone/p/18417186

相关文章

  • 代码整洁之道--读书笔记(11)
    代码整洁之道简介:本书是编程大师“Bob大叔”40余年编程生涯的心得体会的总结,讲解要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来者引路,助其职业生涯迈上更高台阶。本......
  • 基于django+vue高校笔记分享系统【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在信息化高速发展的今天,高等教育领域正经历着前所未有的变革。随着知识更新速度的加快和在线学习平台的兴起,学生们对于高效获取、整理与分......
  • 【学习笔记】欧拉线性筛
    欧拉线性筛简介欧拉线性筛主要用于求\(n\)以内的所有素数,时间复杂度为\(O(n)\)算法实现欧拉线性筛的原理是保证\(n\)以内的所有素数只被他所含有的最小质因子筛过,这样就使得每个素数只被筛过了一次。我们设一个数组\(prime[i]\)表示第\(i\)个素数是多少,\(is\_prime[i]\)表示......
  • 【学习笔记】扩展欧几里得
    扩展欧几里得算法(exgcd)简介扩展欧几里得算法基于辗转相除法构建,主要用于求方程\[ax+by=c\]最小正整数解步骤1.求方程\(ax+by=gcd(a,b)\)的解我们构造两个方程\[\begin{cases}ax+by=gcd(a,b)\\bx'+(a\%b)y'=gcd(b,a\%b)\end{cases}\]因为由欧几里得算法易于得到\[gc......
  • CMake构建学习笔记17-uriparser库的构建和使用
    在连续论述了几篇关于CMake如何使用的文章之后,笔者也是感觉被掏空了。接下来几篇就还是回到构建依赖库的问题上,容笔者花时间找到更好的主题来介绍更多关于CMake使用干货。如何有的读者自信已经很熟悉这方面的知识,可以进行跳过,在需要的时候再进行查阅。uriparser是一个严格遵循RFC......
  • 2024/9/17 笔记
    多项式以后再写吧。首先庆祝一下把猪国杀A了[SDOI2010]猪国杀题目描述游戏背景《猪国杀》是一种多猪牌类回合制游戏,一共有\(3\)种角色:主猪,忠猪,反猪。每局游戏主猪有且只有\(1\)只,忠猪和反猪可以有多只,每只猪扮演$1$种角色。游戏目的主猪/\(\texttt{MP}\):自己存活......
  • 初学Linux笔记
    对linux系统中目录的解释:/bin:bin是Binary的缩写,这个目录存放着最经常使用的命令。/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。/dev:dev是Device(设备)的缩写,存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。/e......
  • 【学习笔记】数位DP
    数位DP适用条件此类题目一般要求在\([l,r]\)区间内满足条件的数的个数,答案一般与数的大小无关,而与数各位的组成有关。题目中给出的数的范围一般较大,往往在\(10^9\)以上因此无法暴力枚举,只能使用动态规划代码实现使用记忆化搜索更简单易于理解。从数的高位向低位搜索,每一位可......
  • C/C++笔记
    C/CPP笔记杂记structmsg_train和typedefstructmsg_train大小不一样cstdio和stdio#include<stdio.h>intmain(){printf("Hello,World!\n");return0;}#include<cstdio>intmain(){std::printf("Hello,World!\n"......
  • 【自学笔记】支持向量机(2)——核函数
    引入  核函数的功能是将一组数据映射到更高维的特征空间,这样可以让在低维无法线性分类的数据能够在高维空间下被分类。  可以证明,如果原始数据是有限的维度,那么一定存在一个高维特征空间使得样本线性可分。  文章内容由《机器学习》相关内容,网络资源,GPT回答和个人......