十进制转为N进制

昨天笔试遇到的题,如果是正数,不断以余数做除法即可:

void convert(int num, int N, vector<char>& data)
{
    int number = num;
    //if (num < 0)
//        num = -num;
    while (num != 0)
    {
        int temp = num%N;
        if (temp <= 9)
            data.push_back(temp + ‘0‘);
        else
            data.push_back(temp - 10 + ‘A‘);
        num /= N;
    }
    //if (number < 0)
    //    data.push_back(‘-‘);
}

int main()
{
    int num, N;
    while (cin >> num >> N)
    {
        if (N == 10)
        {
            cout << num << endl;
            continue;
        }
        vector<char> data;
        convert(num, N, data);

        for (int i = data.size() - 1; i >= 0; i--)
        {
            cout << data[i];
        }
        cout << endl;
    }
    return 0;
}

如果是负数怎么办呢?

时间: 2024-10-12 04:40:34

十进制转为N进制的相关文章

-&gt;code vs 1474 十进制转m进制

1474 十进制转m进制 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 查看运行结果 题目描述 Description 将十进制数n转换成m进制数 m<=16 n<=100 输入描述 Input Description 共一行 n和m 输出描述 Output Description 共一个数 表示n的m进制 样例输入 Sample Input 样例1:10 2 样例2:100 15 样例输出 Sample Output 样例1:1010 样例2:6

Java基础知识强化106:Java中如何实现十进制到其他进制的转换

下面是示例代码,我们直接通过JDK工具库中的方法实现的,如下: 1 package com.himi.radix; 2 3 4 /** 5 * Java中如何实现十进制到其他进制的转换 6 * @author hebao 7 * 8 */ 9 public class IntegerToOther { 10 11 public static void main(String[] args) { 12 int n = 14; 13 //十进制转成十六进制: 14 String n0 = Integ

支持windows linux下将指定内存段转为16进制与ascii码的日志输出类

来源:http://blog.csdn.net/lezhiyong 1. 简介 将指定内存段转为16进制与asci码的输出到日志文件的类. 2. 功能介绍 1) 支持window与linus双系统. 2) 可指定输出目录. 3) 日志能输出的时间精确到毫秒,日志能输出线程号. 4) 提供字符串输出. 5) 提供指定内存转换为16进制输出. 6) 提供指定内存转换为16进制和ascii码同时输出. 7) 可调整16进制输出间距. 3. 原理和算法 1) 模块是基于C++语言编写: 2) 通过条件定

十进制与其他进制之间的相互转换

一.各进制转换为十进制 int Integer.parseInt(String s,int radix);方法用途: parseInt("0", 10) 返回 0 parseInt("473", 10) 返回 473 parseInt("-0", 10) 返回 0 parseInt("-FF", 16) 返回 -255 parseInt("1100110", 2) 返回 102 parseInt("

C语言将10进制转为2进制

第一种方法: #include<stdio.h> void dectobin(int n); int main() { int x=0; scanf("%d",&x);//只能正数 dectobin(x); printf("\n"); return 0; } void dectobin(int n) { if(n/2>0) { dectobin(n/2); printf("%d",n%2); } else { print

十进制转任意进制数

//十进制转任意进制 #include <iostream> #include <stack> using namespace std; int main() { int T; int n, a, p; cin >> T; while (T--) { stack<int> s; //n 为十进制,p为要转换的进制 cin >> n >> p; while (n) { a = n % p; s.push(a); n /= p; } wh

python常用的十进制、16进制、字符串、字节串之间的转换(长期更新帖)

进行协议解析时,总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等 废话不多上,直接上例子 整数之间的进制转换: 10进制转16进制: hex(16)  ==>  0x10 16进制转10进制: int('0x10', 16)  ==>  16 类似的还有oct(), bin() ------------------- 字符串转整数: 10进制字符串: int('10')  ==>  10 16进制字符串: int('10', 16)  ==>  16 16进

python经常使用的十进制、16进制、字符串、字节串之间的转换(长期更新帖)

进行协议解析时.总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等 废话不多上.直接上样例 整数之间的进制转换: 10进制转16进制: hex(16)  ==>  0x10 16进制转10进制: int('0x10', 16)  ==>  16 类似的还有oct(), bin() ------------------- 字符串转整数: 10进制字符串: int('10')  ==>  10 16进制字符串: int('10', 16)  ==>  16 16进

十进制到-2进制的转换

将十进制数转换成-2进制数:比如-13=1*1+1*(-2)+1*4+0*(-8)+1*16+1*(-32)==110111; string decitominus2(int num) { string result; while(num) { if(num%(-2)<0) { result.insert(result.begin(),'1'); num=num/(-2)+1; } else { result.insert(result.begin(),num%(-2)+'0'); num=nu