精华内容
下载资源
问答
  • 十进制转换为N进制的基本方法:除N取余法 方法介绍(十转十六为例) 例如300转换为十六进制: 300 ÷ 16 = 18 ……余12即C 18 ÷ 16 = 1……余2即2 1 ÷16 = 0……余1即1 此时结果为0,结束取余,将取出的余数逆向...

    基本思路

    十进制转换为N进制的基本方法:除N取余法

    方法介绍(十转十六为例)

    例如300转换为十六进制:
    300 ÷ 16 = 18 ……余12即C
    18 ÷ 16 = 1……余2即2
    1 ÷16 = 0……余1即1
    此时结果为0,结束取余,将取出的余数逆向排列即:12C
    则12C即为300的十六进制数
    总结为:除十六取余直至结果为0,最后将余数逆向排列

    C++代码

    #include<iostream>
    #include<cmath>
    using namespace std;
    int main()
    {
     string str;
     char c;
     int x,t,i = 0,sum = 0;
     cin >> x;
     do
     {
      t = x % 16;
      x = x / 16;
      if (t < 10)
      {
       c = '0' + t;
       str = c + str;
      }
      else
      {
       c = 'A' + t - 10;
       str = c + str;
      }
     } while (x);
     cout << str;
     return 0;
    }

    注:字符c与字符串衔接时,需要前接。

    展开全文
  • 在介绍这个方法之前,我想来介绍一下移位运算符 移位运算符分为左移和右移 左移:相当于把当前数值进制位数左移移位,末尾进行0补齐 右移:相当于把当前数值进制位数右移移位,分为逻辑右移和算数...

    在介绍这个方法之前,我想来介绍一下移位运算符

              移位运算符分为左移和右移

              左移:相当于把当前的数值的二进制位数左移移位,末尾进行0补齐

              右移:相当于把当前的数值的二进制位数右移移位,分为逻辑右移和算数右移

                       算术右移(>>):若是无符号数,则空缺补0,若是负数,空缺补1

                       逻辑右移(>>>):不管是什么类型,空缺自动补0

                       例如:i=15(0000 1111),移位两位 i>>2 ,i变为0000 0011(3)

                       一般在实际操作中多用>>>

    算法思想

             如果是要转换为16进制,则我们把要进行转换的数值num与15(1111)进行‘’运算,得到的结果正好是末尾4位的二进制值,然后用10进制能够进行表示,然后我们把num>>>4,把新得到的最后4位来再次进行计算来结果,如果num为0则不必再进行移位操作。同理转换为8进制或者2进制,我们只需要把进行15(1111)依次的变为7(111)/1(1),然后相应的移位的位数进行修改即可

    代码

        /*base代表满多少进1,offset代表右移多少位数*/
        public static void trans(int num,int base ,int offset)
        {
            if(num == 0)
            {
                    System.out.println("0");
                    return;
            }
            //对应关系表
            char chs []={'0','1','2','3','4',
                        '5','6','7','8',
                        '9','A','B','C',
                        'D','E','F'};
            /*定义一个临时容器*/
            char arr []=new char [32];//因为int是4个字节是32位
    
            int pos = arr.length;
            while (num!=0)
            {
                int temp = num & base; //与当前位数进行‘与’运算求得最后4/3/1位数的结果
                arr[--pos] = chs[temp];//逆置存储得到的结果
                num = num >>> offset; //右移
            }
            for(int x =pos;x<arr.length;x++)
                System.out.print(arr[x]);
            System.out.println();
    
        }

     

    展开全文
  • c语言中16进制转换为十进制

    万次阅读 多人点赞 2018-01-17 09:30:56
    方法1:使用进制转换转载:.../* 十六进制数转换为十进制数 */ long hexToDec(char *source); /* 返回ch字符在sign数组中序号 */ int getIndexOfSigns(char ch); int main() {
    方法1:使用进制转换
    转载:https://zhidao.baidu.com/question/51006929.html
    #include <stdio.h>
    #include <string.h>
     
    /* 十六进制数转换为十进制数 */
    long hexToDec(char *source);
     
    /* 返回ch字符在sign数组中的序号 */
    int getIndexOfSigns(char ch);
     
    int main()
    {
        char *hex = "75BCD15";
     
        printf("16进制数:\t%s\n", hex);
        printf("10进制数:\t%ld\n", hexToDec(hex));
     
        return 0;
    }
     
    /* 十六进制数转换为十进制数 */
    long hexToDec(char *source)
    {
        long sum = 0;
        long t = 1;
        int i, len;
     
        len = strlen(source);
        for(i=len-1; i>=0; i--)
        {
            sum += t * getIndexOfSigns(*(source + i));
            t *= 16;
        }  
     
        return sum;
    }
     
    /* 返回ch字符在sign数组中的序号 */
    int getIndexOfSigns(char ch)
    {
        if(ch >= '0' && ch <= '9')
        {
            return ch - '0';
        }
        if(ch >= 'A' && ch <='F') 
        {
            return ch - 'A' + 10;
        }
        if(ch >= 'a' && ch <= 'f')
        {
            return ch - 'a' + 10;
        }
        return -1;
    }
    方法2:可以使用sscanf函数将以字符串形式的十六进制数转换为整型的十六进制
    sscanf函数的用法与printf函数很像,都是以格式化的形式进行操作,例如如下的例子中,sscanf("A23CD", "%x", &a);
    "%x"是将字符串A23CD以十六进制形式输入a中,如果将"%x"换成为"%d"的话,就是将字符串A23CD以十进制形式输入a中,这显然是错误的,因为将A23CD转换为十进制的时候,无法解析A,CD等字符,所以得出的结果就是错误的。
    int a;
    sscanf("A23CD", "%x", &a);
    printf("%x\n",a);
    printf("%d\n",a);
    
    linux@ubuntu:~/test$ ./a.out 
    a23cd
    664525
    
    展开全文
  • # @Time : 2021/1/23 16:10 # @Author : Suage # @File : SysConvert.py from threading import Lock class StringBuilder: def __init__(self, content=None, convert_way='STR', convert_function=None): if ...

    代码如下:

    # -*- coding = utf-8 -*-
    # @Time : 2021/1/23 16:10
    # @Author : Suage
    # @File : SysConvert.py
    
    from threading import Lock
    
    
    class StringBuilder:
        def __init__(self, content=None, convert_way='STR', convert_function=None):
            if content is None:
                self.content = list()
            elif isinstance(content, str):
                self.content = list(content)
            else:
                if convert_way.lower() == 'str':
                    self.content = list(str(content))
                elif convert_way.lower() == 'repr':
                    self.content = list(repr(content))
                else:
                    self.content = list(convert_function(content))
    
        def get_str(self):
            """
            以字符串形式输出内容
    
            :return: 内容
            """
            return ''.join(self.content)
    
        def append(self, text, location=-1):
            if location == -1:
                self.content.extend(text)
            else:
                for c in text: self.content.insert(location, c)
    
        def reverse(self):
            self.content.reverse()
    
    
    class SysConvert:
        __unit: str = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_'
    
        def __init__(self):
            self.__lock = Lock()
            self.__input_number: str
            self.__sys_in: int
            self.__sys_out: int
    
        def set_unit(self, unit):
            """
            设置计数用字符
    
            :param unit: 计数用字符序列
            """
            self.__unit = unit
    
        def num_split(self):
            """
            拆解数字的整数部分和小数部分
            :return: 整数部分, 小数部分
            """
            return self.__input_number.split('.')
    
        def __is_int(self):
            """
            判断输入数字是否为整数
            :return: 整数返回True, 小时返回False
            """
            if '.' in self.__input_number: return False
            return True
    
        def __concert(self, input_num, input_sys, output_sys):
            """
            执行转换
            :return:转换结果
            """
            self.__input_number: str = input_num.upper().replace(' ', '')
            if self.__input_number[0] == '-':
                self.sign = False
                self.__input_number = self.__input_number[1:]
            else:
                self.sign = True
            self.__sys_in: int = input_sys
            self.__sys_out: int = output_sys
            is_int = self.__is_int()
            if is_int:
                if self.input_error(self.__input_number):
                    return 'input error'
                return self.__int_concert(self.__input_number)
    
            int_part, float_part = self.num_split()
    
            if self.input_error(int_part) or self.input_error(float_part):
                return 'input error'
    
            number_part = f'{self.__int_concert(int_part)}.{self.__float_concert(float_part)}'
            if self.sign:
                return number_part
            return f'-{number_part}'
    
        def concert(self, input_num, input_sys, output_sys):
            """
            执行转换
    
            :param input_num: 输入数字
            :param input_sys: 输入数字进制
            :param output_sys: 输出数字进制
            :return: 转换结果
            """
            self.__lock.acquire()
            try:
                res = self.__concert(input_num, input_sys, output_sys)
            finally:
                self.__lock.release()
            return res
    
        def __int_concert(self, int_part):
            """
            整数部分转换为目标进制
    
            :param int_part: 要转换的数字
            :return: 转换结果
            """
            number = self.__any_sys_to_int(int_part)
            return self.__int_to_any_sys(number)
    
        def __any_sys_to_int(self, number):
            """
            将任何进制的整数部分转换为计算机可运算的整数类型
    
            :param number: 要转换的整数部分
            :return: 转换结果
            """
            res = 0
            number = number[::-1]
            for i in range(len(number)):
                res += self.__unit.index(number[i]) * pow(self.__sys_in, i)
            return res
    
        def __int_to_any_sys(self, num):
            """
            将整数类型的数字装换为目标进制的数字
            :param num: 要转换的数字
            :return: 转换结果
            """
            _sb: StringBuilder = StringBuilder()
            while True:
                num, y = divmod(num, self.__sys_out)
                _sb.append(self.__unit[y])
                if num < self.__sys_out:
                    _sb.append(self.__unit[num])
                    break
            _sb.reverse()
            return _sb.get_str().lstrip("0")
    
        def __float_concert(self, float_part):
            """
            小数部分转换为目标进制
    
            :param float_part: 要转换的小数部分(小数点后的部分)
            :return: 转换结果(小数点后面部分)
            """
            number = self.__any_sys_to_float(float_part)
            return self.__float_to_any_sys(number)
    
        def __any_sys_to_float(self, number):
            """
            将任何进制的整数部分转换为计算机可运算的整数类型
    
            :param number: 要转换的整数部分
            :return: 转换结果
            """
            res = 0
            number = number
            for i in range(len(number)):
                res += self.__unit.index(number[i]) * pow(1 / self.__sys_in, (i + 1))
            return res
    
        def __float_to_any_sys(self, num):
            """
            将整数类型的数字装换为目标进制的数字
            :param num: 要转换的数字
            :return: 转换结果
            """
            _sb: StringBuilder = StringBuilder()
            n = num
            for _ in range(15):
                n = n * self.__sys_out
                n_int = int(n)
                n = n - n_int
                _sb.append(self.__unit[n_int])
                if n == 0: break
            return _sb.get_str()
    
        def input_error(self, num):
            for c in num:
                if self.__unit.index(c) >= self.__sys_in: return True
            return False
    
    
    if __name__ == '__main__':
        c1 = SysConvert()
        res1 = c1.concert(input_num='BYSUAGE.I', input_sys=36, output_sys=6)
        res2 = c1.concert(input_num=res1, input_sys=6, output_sys=36)
        print(res1, res2, sep='\n')
    

    运行结果:
    15544450142422.3
    BYSUAGE.I

    写了将近6个小时才写完, 好累…

    展开全文
  • 下面本篇文章就来给大家介绍一下dechex()和base_convert() 函数是如何将十进制转换为十六进制的,希望对大家有所帮助。【视频教程推荐:PHP教程】方法一:使用dechex()函数将十进制转换为十六进制dechex()函数是PHP...
  • 2014-05-06 17:34 吴文付最近由于工作上需要,遇到进制转换的...1、十进制 转 十六进制 二进制://调用java自带api//测试十进制16进制 2进制System.out.println("十进制10转16进制为"+Integer.toHexString(10)...
  • 10进制转换为16进制

    万次阅读 2018-12-19 10:26:22
    十进制小数转换为16进制小数可采用乘16取整法,即: 十进制小数转R进制小数,方法为乘R取整,每次乘以相应之后基数后取结果整数部分即可。需要注意是并非所有的十进制小数都能完全转化为R进制小数,这时就需要...
  • 十进制转换为二进制: 方法1:除二取余法 每次将整数除以二,余数为该位上权数,然后商继续除以二,余数为上一位权上数,就这样一直除下去,直到商为0为止,最后读数时,从最后一个余数开始读,一直读到最前的的...
  • 进制转换为十进制:11111 → 1×2四次方+1×2三次方+1×2二次方+1×二一次方+1×2零次方 = 16 + 8 + 4 + 2 + 1 = 31二进制转换成八进制:10101101 → 010101101 → 010 101 101 = 2 5 5= 255 ...
  • 10进制转换为16进制数——算法

    千次阅读 2020-01-15 22:04:17
    10进制转换为16进制数 题目描述 ​ 十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以...
  • 强国一代,有我在,每个中国人都有一个伟大的中国梦。国庆节是由一个国家制定的用来纪念国家本身的法定假日。进制也就是进制位,我们常用的进制包括:二进制、八进制、... 十进制、二进制的转换 以202例(因为...
  • 在网上找了很多将十六进制转换为十进制的方法,都比较复杂;后来自己想了一个比较简单的方法,跟大家分享一下! 以下是C++语言编写的代码: #include<iostream> using namespace std; void main() { int a=...
  • 数学方法进制转换十进制转二进制若想要实现十进制转其他进制,只需要将%8,/8替换相应数,例如十进制转十六进制,则改%16,/16。#include #include using namespace std; stack<int> Conversions(int num){ ...
  • 方法:采用基数连除取余法。要将十进制数转换为几进制就除以几,先得到余数为地低位,后得到余数为高位 十进制转换二进制 除以2取余 十进制转换十六进制 除以16取余
  • 在这样的动力的驱动下,找到了一个将十进制化为十六进制的简单的方法。 首先我们先来看一下, 这个表中可以看出 十进制和十六进制的对应。 给你一个十进制,比如72. 首先72%16 得到余数 8 然后72/16 得到商为4 然后...
  • Hexnumbersystem是计算机中数据的一...N进制的数可以用0---(N-1)的数表示超过9的用字母A-F例如:10进制的32表示成16进制就是:2016进制的32表示成10进制就是:3×16^1+2×16^0=506.1什么需要八进制和十六进制?编程中...
  • 在Excel或Matlab等软件中,常用XX2XX的表达式进行进制转换,接下来主要展示16进制转换为10进制的操作 16进制转10进制:无符号直接调用HEX2DEC 16进制转10进制:有符号需要根据进制转换的原理,进行小小的修改 以...
  • python如何进行进制转换1、十进制转二进制(bin)首先我们看看怎么把一个十进制转化成二进制,我们可以使用python内置方法 bin输出python 中二进制以ob开头2、十进制转八进制(oct)我们再看看十进制转化八进制...
  • 要把1610转换16进制,采用什么方法好?什么有是先转换成2进制?具体方法和步骤怎么样? 我来帮他解答 输入内容已经达到长度限制 还能输入9999字 插入图片删除图片插入地图删除地图插入视频视频地图 ...
  • java十进制的转换方法

    2019-03-07 14:42:15
    无论是常规的10转2,8,16,还是相对应的2,8,16进制转化10进制的方法,当然也包括10-&gt;n进制,n进制转10进制的常规方法. 都被封装在Integer对象中. 10进制转化其他进制 对应的方法,参数:n(原10进制数据),r(进制),...
  • 今天一朋友问了一问题想到了二进制的解决方法,于是上网搜了下资料,觉得有用,就拿来主意,贴下以备后用。 char *_itoa( int value, char *string, int radix ...这就是把985转换为16进制的字符串。如果你一定要自...
  • 大一寒假的时候我在学校里学C语言的补码时候学会了一种十进制换成二进制的方法,不知道学计算机的是不是也是这么算的,感觉比高中数学课教的那除2取余的方法快多了,而且容易掌握和不需要笔算。具体方法如下,我会先...
  • 一、十进制转换至二进制通常采用“除二取余,逆序连接”方法。 (13)52=(00110100)2 二、二进制转换为十进制采用“权值展开”方法。 (1101)2=(1*23+1*22+0*21+1*20)10=(8+4+0+1)10=(13)10三、推广类似地,我们可以...
  • python如何进行进制转换1、十进制转二进制(bin)首先我们看看怎么把一个十进制转化成二进制,我们可以使用python内置方法 bin输出python 中二进制以ob开头2、十进制转八进制(oct)我们再看看十进制转化八进制...
  • 十进制是用0-9十个数码表示数 二进制 二进制是计算技术中广泛采用一种数制。二进制数据是用0和1两个数码来表示数。它基数2,进位规则是逢二进一,借位规则是借一当二。 十六进制 十六进制(英文名称:...
  • 实现思想2.1 十进制转换为其他进制2.2 其他进制转换为十进制3. 参考资料1. 前言此文方便后期复习,如果有问题,欢迎批评指正。2. 实现思想2.1 十进制转换为其他进制原理:除以进制数(base)取余,逆序输出。 举例...
  • 十六进制转换成十进制的方法:首先确定一个十六进制数;然后计算出第0位以及第1位的权值;接着在第N位上,表示大小“X * 16”的N次方;最后通过竖式计算出转换结果即可。1、十六进制转十进制16进制数的第0位的...
  • 二进制十进制相互转换方法

    千次阅读 2017-04-05 12:48:22
    将一个十进制数除以二,得到商再除以二,依此类推直到商等于一或零时为止,倒取将除得余数,即换算二进制数结果 52除以2得到余数依次:0、0、1、0、1、1,倒序排列,所以52对应二进制数就是110100 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 587
精华内容 234
关键字:

十进制转换为16进制的方法