进制转换算法-除K取余和按位加权求和

news/2024/7/7 20:29:47

在这里插入图片描述

十进制转K进制 - 除K取余

十进制转N进制的转换步骤:

  1. 将给定的十进制数不断地整除N,直到商为0。
  2. 将每步计算所得到的余数(从第一步起依次记录),倒序排列。
  3. 根据余数的数位,以N为基数,组成N进制数。

将十进制数312转换为十六进制数的计算步骤:

  1. 312 ÷ 16 = 19 … 12(商19,余12)
  2. 19 ÷ 16 = 1 … 3(商1,余3)
  3. 1 ÷ 16 = 0 … 1(商0,余1)
  4. 倒序排列所得到的余数:1 3 12
  5. 根据十六进制,用数字代表余数: 12 -> C 3 -> 3 1 -> 1
  6. 所以十进制312对应的十六进制数是:138 这个方法通过模N运算,依次获取数字每一位的N进制表示,然后倒序排列,就可以实现十进制到任意N进制的转换。
#include<stdio.h>
int main()
{
	int a = 3601;
	int k = 2;
	while(a)
	{
		//倒序
		printf("%d",a%k);
		a/=k;
	}
}

K进制转十进制-按位加权和

而把n进制转十进制的方式就是按位加权,例如十进制735转为八进制
x = 7 * 82 + 3 * 81 + 5*80

#include <stdio.h>
#include <math.h>

int convertFromBaseK(int baseKNum, int K) {
  int decNum = 0;
  int power = 0;

  while(baseKNum > 0) {
    int rem = baseKNum % 10;
    baseKNum = baseKNum / 10;
    decNum = decNum + (rem * pow(K, power));
    power++; 
  }
  return decNum;
}

int main() {

  int K = 16; 
  int hexNum = 0x13A;
  int decNum = convertFromBaseK(hexNum, K);
  printf("%X in base %d is %d", hexNum, K, decNum);
  return 0;
}

http://lihuaxi.xjx100.cn/news/1358924.html

相关文章

(笔记)快速排序

快速排序 快速排序是一种常用的排序算法。它的时间复杂度为O(nlogn)&#xff0c;并且在实际应用中表现良好。快速排序的基本思想是通过选择一个基准数&#xff0c;将数组分成两个子数组&#xff0c;比基准数小的放在左边&#xff0c;比基准数大的放在右边&#xff0c;然后对左…

哈佛“聘请”AI担任导师,主讲教授:别全信它的,学生应“批判性地思考”

就在人们为AI聊天机器人的利弊争论不休时&#xff0c;哈佛宣布了一个重磅决定&#xff1a;将利用类似ChatGPT的聊天机器人来帮助授课了。 负责的还是计算机系的旗舰项目 —— 计算机科学导论&#xff0c;也就是著名的 CS50。借助机器人导师&#xff0c;哈佛的 CS50 项目将拥有…

6.4.1 互联网路由探测与发现(一)----ping命令与tracert命令

6.4.1 互联网路由探测与发现&#xff08;一&#xff09; 对于路由探测和发现是非常实用的互联网应用&#xff0c;因为他可以协助网络管理和维护人员进行网络故障的诊断和排查。我们就来熟悉一下路由跟踪程序的使用方法并结合网络协议分析软件分析并深入理解路由跟踪所涉及到协…

使用Electron包装ruoyi-ui/ruoyi-vue实践总结

背景&#xff1a;最近公司新起的项目&#xff0c;由于工期、资源等原因&#xff0c;采用ruoyi框架快速实现开发&#xff0c;由于需要构建客户端&#xff0c;所以借助electron来实现。 electron 是使用javascript html css来构建跨平台的桌面应用程序。 官网地址&#xff1a;简介…

银河麒麟系统挂载的home文件夹无执行权限

银河麒麟系统挂载的home文件夹里放可执行程序&#xff0c;脚本无法运行&#xff0c;最后修改/etc/fstab文件如下所示就可以了 修改完重启电脑就可以执行可执行程序了

vscode报警和报错没有颜色

前言 解决方法来源 https://www.zhihu.com/question/506531863 解决步骤 安装IPython conda install IPython打开/anaconda3/envs/mmagic3/lib/python3.8/site-packages&#xff0c;然后创建一个文件&#xff0c;sitecustomize.py&#xff0c;里面写入 import sys frome IP…

Centos 7 使用国内镜像源更新内核

内核选择参考 此博文 &#xff1a;https://blog.csdn.net/alwaysbefine/article/details/108931626 elrepo官网介绍的内核升级方式为&#xff1a; 一、按文档执行引入 elrepo库&#xff1b; # 1、引入公钥 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org# 2、安…

php做网页版剪刀石头布的功能

实例讲述了php实现的网页版剪刀石头布攻略在玩游网上的设计。分享给大家供大家参考&#xff0c;具体如下&#xff1a; <?php /* * Created on 2016-11-25 * */ if (isset($_POST[sub])) { $what $_POST[what]; //需要输入的数组 $my_array array("剪刀","…