首页 > 其他分享 >负进制转化

负进制转化

时间:2024-04-09 15:30:43浏览次数:27  
标签:num 进制 转化 base ans 余数 reminder 除数

思想:

1.用短除法像处理正常进制一样将所有余数算出来   //余数转化为正数

2.   负数转化公式:

被除数=商*除数+余数

               =商*除数+除数-除数+余数

              =除数*(商+1)+(余数-除数)

举个例子:

-7(十进制)转化为 (-2进制)

7/-2=3+(-1);

因为3+1=4,-1-(-2)=1;

所以7/-2=4*-2+1;

成功将余数转化为正数

#include <iostream>
using namespace std;
string transfer(int num, int base)
{
    if (num == 0)
        return "0";
    string ans = "";
    while (num != 0)
    {
        int reminder = num % base;
        num /= base;

        if (reminder < 0)
        {
            num++;
            reminder -= base;
        }

        char cur = (reminder >= 10 ? ('A' + reminder - 10) : (reminder + '0'));
        ans = cur + ans;
    }
    return ans;
}
int main()
{
    int N, base;
    cin >> N >> base;
    string ans = transfer(N, base);
    cout << N << "=" << ans << "(base" << base << ")" << endl;
    system("pause");
    return 0;
}

标签:num,进制,转化,base,ans,余数,reminder,除数
From: https://blog.csdn.net/2303_79639713/article/details/137553451

相关文章

  • 二进制求子集(位图法)
    0.使用二进制方式求子集例如:a5a4a3a2a1111111.代码模板#include<bits/stdc++.h>usingnamespacestd;intn;inta[]={1,2,3,4,5,6,7,8,9,10};//求a[0]->a[n-1]的所有子集voidprint_subset(intn){ //i<(1<<n)即i<=2^(n-1),是......
  • 将一个结构体里面的数据转为 小端对齐的二进制流
    现在有一个C++的结构体,需要把它转为二进制流,而且是小端对齐的。我们还需要将一个小端对齐的二进制流,转为对应的结构体。appendLittleEndianparseLittleEndian这2个方法是chatgpt提供给我的,功能能准确实现。代码也比较简洁。 #include<iostream>#include<vector>#inc......
  • 进制之间的转换之“十六进制 转 十进制 转 二进制 方案”
    1.十六进制转十进制十六进制数为:0X1A6F根据16进制数要转十进制得到公式:F*160+6*161+A*162 +1*163 十六机制数:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F也就是常数:0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15转为常数:15 *160 +6*161 +10*162 +1*163 计......
  • gcc bin 文件转化为静态库文件
    D:\workplace\project\driver_prj\driver_prj_mag\bin\Release\driver_mag_prj.elfD:\workplace\project\driver_prj\driver_prj_mag\bin\Release\driver_mag_prj.binC:\ProgramFiles(x86)\EmBitz\1.11\share\em_armgcc\arm-none-eabi\bin\objcopy.e......
  • 洛谷题单指南-数学基础问题-P1017 [NOIP2000 提高组] 进制转换
    原题链接:https://www.luogu.com.cn/problem/P1017题意解读:负进制数的转换。解题思路:下面给出两种思路1、枚举法从数据范围来看,∣n∣≤37336,因此,可以对该r进制的数进行枚举,每一次枚举,都计算r进制数对应的十进制数是否和n相等,相等则输出该r进制数。主要问题就是要解决r进制......
  • 顺序栈功能函数(包括判断回文、数值转化、括号匹配)
    一,具体代码#include<iostream>#include<stdlib.h>usingnamespacestd;#defineOK1#defineERROR0#defineMAXSIZE100typedefintElemType;typedefintStatus;typedefstruct {   ElemType*elem;   inttop;}Sqstack;StatusInitStack(Sqstack......
  • 洛谷题单指南-数学基础问题-P1143 进制转换
    原题链接:https://www.luogu.com.cn/problem/P1143题意解读:进制转换的模版题,n进制转10进制,10进制转m进制。解题思路:1、对于n进制数转10进制,如abcd转10进制,根据定义是a*n^3+b*n^2+c*n+d,在程序中迭代处理:for(inti=0;i<s.length();i++)dec=dec*n+s[i]需要注......
  • MFC中数据转化
    目录1.CString数据转化为int类型数据2.int类型转化为CString类型数据3.MFC中CString数据类型转换为std::string数据类型4.MFC中std::string数据类型转换为CString数据类型1.CString数据转化为int类型数据在MFC中,将CString类型数据转换为int类型数据,可以使用ATL/MFC提......
  • Qt中char数组转16进制字符
    Tcp传入的16进制转16进制字符关键点:char、QByteArray::toHex()、QByteArray::fromRawData()知识点补充char在32bit或64bit系统中占一个1Bytechar中实际存储的是数字,当存在字符时,会把字符转为ASCLL码中对应的数组,存储进内存中char占1Byte,即4bit,而一个16进制是2的4次方即需......
  • VOC2012数据集格式转化为YOLO格式
     下面是VOC2012数据集的目录格式├──VOCdevkit│├──VOC2012数据集根目录│├──Annotations标注数据的xml格式数据的目录│├──lImageSets│├└──Main训练集、验证集、测试集的......