精华内容
下载资源
问答
  • 16进制 10进制00 001 102 2.. .09 90A 100B 110C 120D 130E 140F 1510 161F 3120 32将数字符号按序排列成位,并遵照某种由低位到高位的进位 方式计数表示数值的方法,...

    16进制 10进制

    00 0

    01 1

    02 2

    .. .

    09 9

    0A 10

    0B 11

    0C 12

    0D 13

    0E 14

    0F 15

    10 16

    1F 31

    20 32

    将数字符号按序排列成数位,并遵照某种由低位到高位的进位 方式计数表示数值的方法,称作进位计数制。

    1. 十进制

    十进制计数制由 0、 1、 2、 3、 4、 5、 6、 7、 8、 9共 10个数字符号组成。相同数字符号在不同的数位上表示不同的数值,每个数位计满十就向高位进一,即 “逢十进一 ”。

    如: 555.5可以表示成

    555.5= 5×100+5×10+5×1+5×( 1/10)

    一个任意的十进制数都可以表示成:

    2. 八进制

    八进制计数制由 0、 1、 2、 3、 4、 5、 6、 7共 8个数字符号组成。相同数字符号在不同的数位上表示不同的数值,每个数位计满八就向高位进一,即 “逢八进一 ”。

    如:( 555.5) 8 可以表示成

    ( 555.5) 8 = 5×16+5×8+5×1+5×( 1/8)

    一个任意的十进制数都可以表示成:

    3. 二进制

    二进制计数制由 0和 1共 2个数字符号组成。相同数字符号在不同的数位上表示不同的数值,每个数位计满二就向高位进一,即 “逢二进一 ”。

    如:( 1011.1) 2 = 1×8+0×4+1×2+1×1+1×( 1/2)

    一个任意的二进制数都可以表示成:

    4. 其他进制

    在日常生活和日常工作中还会使用其他进制数。如:十二进制数、十六进制数、百进制数和千进制数等。无论哪种进制数,表示的方法都是类似的。如:十六进制数由 0、 1、 2、 3、 4、 5、 6、 7、 8、 9、 A、 B、 C、 D、 E和 F共十六个符号组成, “逢十六进一 ”。不同的是用 A、 B、 C、 D、 E和 F分别表示 10、 11、 12、 13、 14和 15六个数字符号。

    5. 基数与权

    某进制计数制允许选用的基本数字符号的个数称为基数。一般而言, J进制数的基数为 J,可供选用的基本数字符号有 J个,分别为 0到 J- 1,每个数位计满 J就向高位进一,即 “逢 J进一 ”。

    某进制计数制中各位数字符号所表示的数值表示该数字符号值乘以一个与数字符号有关的常数,该常数称为 “位权 ”(简称 “权 ”)。位权的大小是以基数为底,数字符号所处的位置的序号为指数的整数次幂。

    十进制数允许使用十个基本数字符号,所以基数为 10,每位数字符号代表的位数的大小是以 10为底,数字符号所处位置的序号为指数的整数次幂。

    为了表达方便起见,常在数字后加一缩写字母后缀作为不同进制数的标识。各种进制数的后缀字母分别为:

    B :二进制数。

    Q :八进制数。

    D :十进制数。

    H :十六进制数。

    对于十进制数通常不加后缀,也即十进制数后的字母 D 可省略。

    ( 1 )将二进制数转换成对应的十进制数

    将二进制数转换成对应的十进制数的方法是“按权展开求和”:

    利用二进制数按权展开的多项式之和的表达式,取基数为 2 ,逐项相加,其和就是对应的十进制数。

    例 1 :将二进制数 1011.1 转换成对应的十进制

    解: 1011.1B=1×2 3+0×2 2+1×2 1+1×2 0+1×2 -1

    =8+0+2+1+0.5

    =11.5D

    例2:

    ( 2 )将十进制数转换成对应的二进制数

    将十进制数转换为对应的二进制数的方法是:

    对于整数部分,用被除数反复除以 2 ,除第一次外,每次除以 2 均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。

    对于小数部分,采用连续乘以基数 2 ,并依次取出的整数部分,直至结果的小数部分为 0 为止。故该法称 “ 乘基取整法 ” 。

    例:将十进制 117.625D 转换成二进制数

    解:整数部分: “除以 2 取余,逆序输出”

    小数部分 : “乘以 2 取整,顺序输出”

    所以 117.625D = 1110101.101B

    例2:

    例3:

    特别提示:将十进制数转换成其他进制数方法与次上述方法类似。

    ( 3 )将二进制数转换为对应的八进制数

    由于 1 位八进制数对应 3 位二进制数,所以二进制数转换成八进制数时,只要以小数点为界,整数部分向左,小数部分向右每 3 位分成一组,各组用对应的 1 位八进制数字表示,即可得到对应的八进制数值。最左最右端分组不足 3 位时,可用 0 补足。

    例:将 1101101.10101B 转换成对应的八进制数。

    解:

    所以, 1101101.10101B = 155.52Q 。

    同理,用相反的方法可以将八进制数转换成对应的二进制数。

    ( 4 )将二进制数转为对应的十六进制数

    由于 1 位十六进制数对应 4 位二进制数,所以二进制数转换为十六进制时,只要以小数点为界,整数部分向左,小数部分向右每 4 位分成一组,各组用对应的 1 位十六进制数字表示,即可得到对应的十六进制数值。两端的分组不足 4 位时,用 0 补足。

    例:将 1101101.10101B 转换成对应的十六进制数

    解:

    所以 1101101.10101B = 6D.8AH 。

    同理,用相反的方法可以将十六进制数转换成对应的二进制数。

    例:将十六进制数 5DF.9 转换成二进制:

    例:将二进制数 1100001.111 转换成十六进制:

    至于其他的转换方法,如八进制到十进制,十六进制到十进制之间的转换,同样可用按权展开的多项式之和及整数部分用 “ 除基取整数 ” 来实现的。只不过此时基数分别为 8 和 16 。当然,更简单实用的方法是借用二进制数做桥梁,用 “ 八 —— 二 —— 十 ” 或 “ 十六 —— 二 —— 八 ” 的转换方法来实现

    展开全文
  • 一.代码功能:输入一个十进制整数,将其转化为十六进制整数并输出 二.... #include<...// step2 创建一个字符串类型变量hex,用于接收转化后的十六进制数 // step3 创建一个余数数组reminder用于接收

    一.代码功能:输入一个十进制整数,将其转化为十六进制整数并输出

    二.源码

    #include<iostream>
    #include<cstring>
    #include<cmath>
    
    using namespace std;
    
    
    // 十进制数转化为十六进制数步骤如下:
    // step1 创建一个整型变量dec,用于接收十进制整数
    // step2 创建一个字符串类型变量hex,用于接收转化后的十六进制数
    // step3 创建一个余数数组reminder用于接收除16产生的余数
    // step4 创建一个整型变量count并初始化为0,用于记录余数个数
    // step5 输入dec,若dec<0,取该数绝对值,同时hex+='-',然后进行第6步;若dec为0,0即为最终答案; 
             若dec>0,直接进行第6步
    // step6 当dec!=0,reminder[i]=dec%16,dec/=16,同时余数数组下标i加1,此时若dec>0,count也加1 
           (这步就是在初始化余数数组)
    // step7 遍历余数数组的前count位,将余数数组中的每个数字转化为字符串,并用字符串数组str接收,同 
             时hex+=str[i](即进行字符串拼接)
    // step8 输出hex
    
    
    int main() {
    
    	int dec = 0; // 十进制数
    	
    	string hex; // 十六进制数,用字符串类型接收,方便后续通过+运算符进行拼接
    
    	int reminder[100]; // 余数数组
    
    	int count = 0; // 记录余数个数 
    
    	int i = 0; // 余数数组下标 
    
    	// 输入十进制数
    	cout << "请输入一个十进制整数:";
    	cin >> dec;
    	if(dec<0){
    		dec = abs(dec);
    		hex += "-";
    	}
        else if(dec==0){
            cout<<"转为十六进制为:"<<0<<endl;
            exit(0);
        }
    
    
    	// 初始化余数数组 
    	while (dec != 0) {
    		reminder[i] = dec % 16;
    		dec /= 16;
    		i++;
    		if(dec>0){
    			count++;
    		}
    	}
    
    	string str[100];
    
    	for (int i = count; i >= 0; i--) {
    		if (reminder[i] >= 10) {
    			switch (reminder[i]) {
    			case 10:
    				str[i] = "A";
    				break;
    			case 11:
    				str[i] = "B";
    				break;
    			case 12:
    				str[i] = "C";
    				break;
    			case 13:
    				str[i] = "D";
    				break;
    			case 14:
    				str[i] = "E";
    				break;
    			case 15:
    				str[i] = "F";
    				break;
    			}
    		}
    		else if (reminder[i] < 10) {
    			str[i] = to_string(reminder[i]);
    		}
    		hex += str[i];
    	}
    	
    	cout<<"转为十六进制为:"<<hex<<endl;
    	
    	return 0;
    }

    三.注意事项

    1.余数数组的长度可以事先指定一个较大的值,反正后面遍历前count位就行;

    2.余数数组的遍历就是常见的for循环,但要注意不能写成:for(int i=0;i<count;i++),因为事实上这     里的余数数组是一个栈,要保证后进的先出,所以要写成for(int i=count;i>=0;i--);

    3.字符串数组str初始化时写成string str[count]编译器会报错,所以str的长度也可以事先指定一个       较大的值,反正只需要操作其前count位;

    4.输入的数记得判断是正/负/0(0直接输出即可),若为负数划归到正数(取绝对值)进行操作;

    5.初始化余数数组时,记得判断dec/=16后是否还为正,若为正count才++,否则输出小于16的           十进制数的转化结果时前面会多一个0,例如12->0C;

    6.采用字符串类(string)的原因就是它里面有非常多好用的内置函数(例如本题中用到的to_string)以及拼接方便。

    展开全文
  • //将十进制n对16取余并逆序输出,然后将n/16作为参数再次调用递归函数,直到参数小于10 t=n%16; //因为要逆序输出,所以输出语句在递归语句之后 if(t>=10)cout<<char('A'+t-10);//将大于等.
    #include<iostream>
    using namespace std;
    void tran(int n)//转制递归函数
    {
        int t;
        if(n>10)tran(n/16); //将十进制n对16取余并逆序输出,然后将n/16作为参数再次调用递归函数,直到参数小于10
        t=n%16;             //因为要逆序输出,所以输出语句在递归语句之后
        if(t>=10)cout<<char('A'+t-10);//将大于等于10的余数转为十六进制的字母
        else cout<<n%16;
    }
    int main()
    {
        int n;
        cout<<"请输入一个十进制整数,输出十六进制\n";
        cin>>n;
        tran(n);
        cout<<'\n';
        return 0;
    }

    此 tran 函数为递归函数,进入递归函数的参数为需要反复计算的公,但需要有明确的判断条件跳出递归。如此函数的判断条件为if(n>10)

    在递归法里若将结果顺序输出,需将输出放置在递归语句之前,想逆序输出则放置递归语句之后。

    展开全文
  • 十进制十六进制算法

    千次阅读 2021-05-21 16:51:56
    最简单的,不涉及算法的作法就是用printf的输出格式 %x 输出16进制%x 输出小写的a、b、c、d、e、f %X输出大写的A、B、C、D、E、F#include"stdio.h"int ...printf("该数转换为16进制数为: %X\n",a);return 0;}详细...

    最简单的,不涉及算法的作法就是用printf的输出格式 %x 输出16进制

    %x 输出小写的a、b、c、d、e、f %X输出大写的A、B、C、D、E、F

    #include"stdio.h"

    int main()

    {

    int a;

    printf("请输入一个10进制整数:" );

    scanf( "%d", &a);

    printf("该数转换为16进制数为: %X\n",a);

    return 0;

    }

    详细的转化方法:

    #include

    int x[100];

    int jzzh(int y,int ml)

    {

    int i,a;

    i=ml;

    x[0]=0;

    for(a=1;;a++)

    {

    if(i!=0)

    {

    x[a]=i%y;

    x[0]++;

    }

    else

    break;

    i=i/y;

    }

    return x[0];

    }

    int main()

    {

    long int y,ml;

    long int a;

    printf("请输入需要转换至进制数:");

    scanf("%d",&y);

    printf("请输入数字:");

    scanf("%d",&ml);

    jzzh(y,ml);

    for(a=x[0];a>=1;a--)

    {

    if(x[a]>=10)

    {

    printf("%c",x[a]+55);

    }

    else

    {

    printf("%d",x[a]);

    }

    }

    printf("\n");

    return 0;

    }

    追问

    就我这个题而言

    void f( long int x, char *p ){

    sprintf(p,"%X",x);p++;

    }

    我这个为啥不对

    展开全文
  • 微机原理——十进制数十六进制 实验环境依旧是 下面是我给出的代码,代码行数比较多但是很容易理解 小伙伴们可以尝试利用循环结构或者子程序,缩短代码行数 DATA SEGMENT X DW 456 ; 测试数据 DATA ENDS STACK ...
  • 题目 题目描述 请从键盘读入一个非负整数n(n是一个不超过18位的正整数),将n转换为16进制! 注意:16进制即逢16进1,每一位上可以是从小到大为0、1...该十六进制值 样例输入 100000000000 样例输出 174876E800
  • 进制数转换成十六进制数~C语言

    万次阅读 2017-10-28 16:56:49
    #include /*****下面将整数a转换成十六进制输出的字符串*****/ /*****原理:1,首先知道0b100000 = 0b10000*2 = 0b1000*2 = 0b100*2 =0b10*2 利用这一特性能将char型的.../***** 2,15以内的十进制数输出成
  • 汇编语言将十进制字符串转为十六进制

    千次阅读 多人点赞 2021-10-19 23:39:02
    汇编语言将十进制字符串转为十六进制 Author:Em1ya Part1:Str to hex 基本思路:将10进制字符串的每一个字符提出,减去0x30转化位该位对应的数值,将数值与原结果10相加 例如:1234的分解成为1+010=1,2+110=12,...
  • /**** Copyright(C) 2011, SKYCNC* All rights reserved** 程序名称:dec_to_bin_oct_hex* 功 能:输入一个十进制数,将其转化为二进制、八进制、十六进制** 作 者:zhanghbboy* 完成日期:11.07.27****/#include#...
  • Python 十进制转为十六进制

    千次阅读 2020-12-23 11:20:57
    代码 data_hex = hex(16) data_hex2dec = int(data_hex, 16) print("16进制:{}\n10进制:{}".format(data_hex, data_hex2dec)) 结果 16进制:0x10 10进制:16
  • 单片机中十进制十六进制 在进行单片机编码过程中用到过的一个转换方法,在此记录一下,方便以后使用,只能是转成十六进制是 两个 字节的数字,即 可转的范围0<n<256 可修改 u8->u16,转换更高范围 u8 temp...
  • 输入一个十进制数,运用数组将其转化为十六进制数 思路分析: 十进制转十六进制的算法: 将一个整数转化为由一个个字符组成的十六进制数 将一整数输入函数,新建一个空数组来存十六进制的每一个字符 新建...
  • 使用整形数组来存储十六进制数; a[0] 表示十六进制数字的位数; 最终效果:https://www.cnblogs.com/tao-zhu-forever/p/9126890.html 【C语言】 任意十进制数字转十六进制 大概思路: 输入任意十进制数字 首先...
  • java-十进制、八进制、十六进制数互相转换下面是一个十进制、八进制、十六进制数互相转换的小程序public class JZTurn {public static void main(String[] args) {int num2 = 1314521;System.out.println("十进制数:...
  • 以下为在Python解释器编程环境下的操作示范:把十六进制的字串转为十进制数字:Python代码>>> print int('ff', 16)255>>> print int('ff', 16)255把十进制数字转换为以十六进制表示之字串,可调用...
  • JAVA十进制转化为十六进制

    万次阅读 2018-03-09 23:21:57
    十进制转化为十六进制问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制...
  • python 把16进制字符串转化为16进制数字, 比如‘0x小编不希望有...(python)如何让python的16进制运算的输出格式为16进制而不...a='0x0012e' b= hex(eval(a)) print b 输出 0x12e 注意,一般计算机的十六进制数直接...
  • 用字符表示的十六进制值转化为十进制,ASCII码: bool ok; QStringList list; //初始化list的内容为:list = ("30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "43", "44", "4D", "4E") //初始化...
  • 例如十进制数181的十六进制为B5 2.思路解析 "按照上面的求法可知就是求余,但是每次求余得到的数我们都要进行存储,这时候我们可以运用我们所学习的数组,将每次求余所得的数进行储存。 "但是储存过程中,因为...
  • C#实现十进制转为十六进制

    千次阅读 2020-03-11 19:25:28
    C#实现十进制转为十六进制 int a = 123456; a.ToString() =123456 a.ToString("x") =1e240 a.ToString("X") =1E240 a.ToString("X8") =0001E240 //X8表示结果限制在8个字符的长度 int a = 123456; Con...
  • Hello,大家好,我是wangzirui32,今天我们将学习如何将进制数转换为二进制,八进制,十六进制数。 学习目录1. 转换二进制2. 转换八进制3. 转换十六进制 1. 转换二进制 # 任意进制转换为二进制 new_number = bin...
  • C语言: 十进制转为十六进制

    万次阅读 2018-10-12 16:44:25
    /*********十进制转为十六进制函数******** 第一个参数为要被转换的十进制, 第二个为转换完成保存的十六进制的位置, 第三个参数为转换后十六进制的长度。 *******************/ void To_Hex(unsi
  • 二进制的1101转化成十进制 1101(2)=1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13 转化成十进制要从右到左用二进制的每个去乘以2的相应次方 不过次方要从0开始十进制转二进制: 用2辗转相除至结果为1 将余数和最后的1...
  • 1 dec2hex(){ 2 printf "%x" $1 3 } 4 5 a=$(dec2hex 2131165531) 6 echo $a  
  • 进制数 d = 15,转为十六进制数 h ? // 进制数 var d = 15; // 十六进制数 var h = d.toString(16); // 'f' 二进制数 b = ‘1111’,转为进制数 d ? // 二进制数 var b = "1111"; // 进制数 var d = ...
  • loacl str = pack.pack("b", number)
  • 问题是that The largest number that can be converted is ... 4294967295 – 因此它不适合你.This answer在快速测试期间为我工作,假设您在服务器上安装了bcmath,并且您可以将该数字作为字符串开头....
  • 以下程序的输出结果是 main(){ int a=20; printf("%d,%o,%x\n",a,a,a);...1.题目给出了 a=20这个十进制现在我们需要用十进制转八进制,这里我们采用的就是直接除8取余的方法 2.同理对于10进制转16进制我们也是...
  • 【注意事项】a....nx的所有二进制位向右移动n位,移出的位删掉,移进的位补符号位右移不会改变一个的符号【注意事项】右移1位相当于除以2x右移n位就相当于除以2的n次方用途:快速计算一个除以2的n次方(8&...
  • c语言编程 把十进制转换为十六进制

    万次阅读 多人点赞 2017-06-25 22:23:23
    #include   main() {   ..."%d(10)转换为16进制数字为:" ,u10);   for (i=w-1;i>=0;i--)   {   printf ( "%c" ,u16[i]);   }   printf ( "\n" ); }

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,976
精华内容 8,390
关键字:

十进制数转为十六进制数