精华内容
下载资源
问答
  •  接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整数。 【注意】 输入的十六进制数不会有前导...













    十六进制转八进制

    问题描述

      给定n个十六进制正整数,输出它们对应的八进制数。

    输入格式
      输入的第一行为一个正整数n (1<=n<=10)。
      接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。

    输出格式
      输出n行,每行为输入对应的八进制正整数。

       【注意
      输入的十六进制数不会有前导0,比如012A。
      输出的八进制数也不能有前导0。

    样例输入
      2
      39
      123ABC

    样例输出
      71
      4435274

       提示
      先将十六进制数转换成某进制数,再由某进制数转换成八进制。
    #include <string>
    #include <stdio.h>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    int main() {
    	int n;
    	scanf("%d", &n);
    	while(n--) {
    		string str1, str2 = "";
    		cin >> str1;
    		for(int i = 0; i < str1.length(); i++) {
    			switch(str1[i]) {
    				case '0': str2 += "0000";break;
    				case '1': str2 += "0001";break;
    				case '2': str2 += "0010";break;
    				case '3': str2 += "0011";break;
    				case '4': str2 += "0100";break;
    				case '5': str2 += "0101";break;
    				case '6': str2 += "0110";break;
    				case '7': str2 += "0111";break;
    				case '8': str2 += "1000";break;
    				case '9': str2 += "1001";break;
    				case 'A': str2 += "1010";break;
    				case 'B': str2 += "1011";break;
    				case 'C': str2 += "1100";break;
    				case 'D': str2 += "1101";break;
    				case 'E': str2 += "1110";break;
    				case 'F': str2 += "1111";break;
    				default: break;
    			}
    		}
    		int m = str2.length();
    		if(m%3 == 1) 
    			str2 = "00" + str2;
    		else if(m%3 == 2) 
    			str2 = "0" + str2;
    		int flag = 0;
    		//cout << str2 <<endl;
    		for(int i = 0; i <= str2.length()-3; i+=3) {
    			m = 2*2*(str2[i]-'0') + 2*(str2[i+1]-'0') + 1*(str2[i+2]-'0');
    			if(m) flag = 1;
    			if(flag) cout<<m;
    		}
    		puts("");
    	}
    	return 0;
    }

    十六进制转十进制

    问题描述
      从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
      注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
    样例输入
    FFFF
    样例输出
    65535

    #include <string>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    #define LL long long
    LL Pow_mod(LL a, LL b) { // a^b
    	LL ret = 1;
    	while(b != 0) {
    		if(b%2 == 1) 
    		ret *= a;
    		a *= a;
    		b /= 2;
    	}
    	return ret;
    }
    int main() {
    	string str1;
    	cin >> str1;
    	LL sum = 0;
    	int n = 0;
    	for(int i = str1.length()-1; i >= 0; i--) {
    		if(str1[i] >= '0' && str1[i] <= '9') {
    			sum += (str1[i]-'0')*Pow_mod(16, n);
    		}
    		else sum += (str1[i]-'A'+10)*Pow_mod(16, n);
    		n++;
    	}
    	cout << sum << endl;
    	return 0;
    }

    十进制转十六进制

    问题描述
      十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。
      给出一个非负整数,将它表示成十六进制的形式。
    输入格式
      输入包含一个非负整数a,表示要转换的数。0<=a<=2147483647
    输出格式
      输出这个整数的16进制表示
    样例输入
    30
    样例输出
    1E

    #include <stdio.h>
    char c[17] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
    int main() {
    	int p = 0;
    	long long n;
    	int ans[1005];
    	scanf("%lld", &n);
    	if(!n) puts("0");
    	else
    	while(n) {
    		ans[p++] = n%16;
    		n /= 16;
    	}
    	for(int i = p-1; i >= 0; i--) {
    		printf("%c", c[ans[i]]);
    	}
    	return 0;
    }

    展开全文
  • 十六进制十进制问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换正的十进制数后输出。 注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。样例输入FFFF样例输出65535 ...

    十六进制转十进制  

    问题描述
      从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
      注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
    样例输入
    FFFF
    样例输出
    65535

    import java.util.Scanner;
    
    public class Main {
    	private static void transform(){
    		Scanner scanner = new Scanner(System.in);
    		String num = scanner.nextLine();
    		String arr = null;
    		if( num.length() <= 8){
    			arr = Long.valueOf(num, 16).toString();
    		}
             System.out.println(arr);		
    	}
       public static void main(String[] args) {
    	   transform();
       }
    }


    十进制转十六进制 
    问题描述
      十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。
      给出一个非负整数,将它表示成十六进制的形式。
    输入格式
      输入包含一个非负整数a,表示要转换的数。0<=a<=2147483647
    输出格式
      输出这个整数的16进制表示
    样例输入
    30
    样例输出
    1E
    import java.math.BigInteger;
    import java.util.Scanner;
    
    public class Main {
      public static void main(String[] args) {
    	Scanner scanner = new Scanner(System.in);
    	String num = scanner.nextLine();
    	
    	BigInteger step = new BigInteger(num);
    	
    	System.out.println(step.toString(16).toUpperCase());
    }
    }

    十六进制转八进制loading。。。。。。。。。。。。。。//TODO



    展开全文
  • s=int(input(),16) #输入十六进制并将其转换为十进制 s=int(input(),10) #输入十进制并将其转换为十进制 s=int(input(),8) #输入八进制并将其转换为十进制 s=int(input(),2) #输入二进制并将其转换为十...
  • 十六进制字符串转换为十进制

    万次阅读 2018-08-15 10:05:22
    十进制字符串转换为十进制数 ...十六进制字符串转换为十进制数 法一 long long change_num(char *str, int length) { char revstr[16] = {0}; //根据十六进制字符串的长度,这里注意数组不要越界...

    十进制字符串转换为十进制数

    char *str = "123";
    int n = atoi(str);
    printf("%d\n", n);
    
    //输出:123
    

    十六进制字符串转换为十进制数
    法一

    long long change_num(char *str, int length)
    {
       char revstr[16] = {0}; //根据十六进制字符串的长度,这里注意数组不要越界
       long long num[16] = {0};
       long long count = 1;
       long long result = 0;
       
       strcpy(revstr, str);
    
       for(int i = length - 1; i >= 0; i--)
       {
          if((revstr[i] >= '0') && (revstr[i] <= '9'))
          {
             num[i] = revstr[i] - 48;   //字符0的ASCII值为48
          }
          else if((revstr[i] >= 'a') && (revstr[i] <= 'f'))
          {
             num[i] = revstr[i] - 'a' + 10;
          }
          else if((revstr[i] >= 'A') && (revstr[i] <= 'F'))
          {
             num[i] = revstr[i] - 'A' + 10;
          }
          else
          {
             num[i] = 0;
          }
    
          result += num[i] * count;
          count *= 16; //十六进制(如果是八进制就在这里乘以8)
       }
    
       return result;
    }
    
    int main()
    {
    	char *str = "0xA"; 
    	int n = 0;
    	n = change_num(str, strlen(str));
    	printf("%d\n", n);
    	
    	return 0;     
    }
    
    //输出:10
    

    法二

    char *str = "0xA"; 
    int n = 0;
    sscanf(str, "%x", &n);
    printf("%d\n", n);
    
    //输出:10
    

    法三

    char *str = "0xA"; 
    int n = strtol(str, NULL, 16);
    printf("%d\n", n);
    
    //输出:10
    
    展开全文
  • 汇编语言:将ASCⅡ码表示十进制数转换二进制/十六进制数 你们好! 这是我的第一个汇编程序的博客,汇编是一个神奇的东西,你深入了解他之后会他着迷的!!! 题目 将ASCⅡ表示十进制数字转化二进制,...

    汇编语言:将ASCⅡ码表示的十进制数转换为二进制数/十六进制数

    你们好! 这是我的第一个汇编程序的博客,汇编是一个神奇的东西,你深入了解他之后会为他着迷的!!!

    题目

    将ASCⅡ表示的十进制数字转化为二进制数,例如,默认输入30H,30H,32H,35H,36H,那么程序的最后查看AX寄存器应该是0100。

    分析

    题目中的30h代表是的十进制0的ASCⅡ码,十进制的数字0-9对应的ASCⅡ码就是30h-39h。而30h,30h,32h,35h,36h,代表的正好是十进制的数字256,也就是28,对应着二进制的0000 0001 0000 0000 ,因为AX寄存器是十六位的,是用十六进制表示的,也就是0010

    转换原理

    我们以五位十进制数字为例:
    1、首先是将五位ASCⅡ码转换为十进制的数字
    ∑ i = 0 4 D i ∗ 10 = ( ( ( D 4 ∗ 10 + D 3 ) ∗ 10 + D 2 ) ∗ 10 + D 1 ) ∗ 10 + D 0 \sum_{i=0}^4D_i*10=(((D_4*10+D_3)*10+D_2)*10+D_1)*10+D_0 i=04Di10=(((D410+D3)10+D2)10+D1)10+D0
    这就是ASCⅡ转换为十进制数字的公式,而计算机寄存器中的数字是用十六进制数字表示的,也就是这时候就已经转换为十六进制数字了。
    2、一定要注意,你要搞清楚什么时候使用ASCⅡ值,什么时候使用真值
    ASCⅡ:输入和输出时使用的均为ASCⅡ码值
    真值:计算的时候使用的为真值,真值就是用ASCⅡ值减去30

    sub dl,30h;转换为真值
    

    我们可以用这样的代码转换为真值,同样,使用add命令可以转化为ASCⅡ值。
    3、有的人想要把结果按二进制输出,这时候你可以选择循环来实现。我用的是逻辑循环左移,也就是每次都会将最高位循环移动到最低位,每次使用01h与结果,将这一位输出就可以知道这一位是0还是1。输出的方法是使用21h号中断的02h,这个中断会输出dl寄存器中的ASCⅡ码对应的字符。

    程序代码

    csdn不支持汇编语言,无法高亮显示

    	data segment;定义数据段
    	org 3500h;数据段从3500h开始存储
    	num	db 30h,30h,32h,35h,36h;num首地址为3500h
    	data ends
    	
    	code segment;代码段
    	assume cs:code,ds:data;声明代码段地址和数据段地址
    	start:
    		mov ax,data
    		mov ds,ax;将数据存储到内存中
    		
    		mov cx,4h;循环4次
    		mov bx,000ah
    		
    		mov ah,0;ah必须为0,对应mul指令
    		mov si,3500h;可以使用offset num代替3500h
    		mov al,[si];将si的数据交给al寄存器
    		sub al,30h;获得asc码对应真值,使用真值运算
    		mov dh,00h
    		
    	next1:
    		mul bx;此处为ax*bx->dl_ax,所以ah必须为0,否则ah会影响
    			  ;当需要转换的十进制数小于65536的时候,
    			  ;数据全部存储于ax中
    		inc si
    		mov dl,[si];取下一位十进制数字
    		sub dl,30h;转换为真值
    		add ax,dx;dx+ax->ax,dh值已经置零
    		loop next1;因为循环前已经处理过第一个数,所以cx为4
    		
    		mov cx,10h;此处是十六进制,cx循环10次
    		mov bx,ax
    		
    	next2:
    		rol bx,1;逻辑循环左移
    		mov dl,bl
    		and dl,01h;确定最低位为0还是1
    		add dl,30h;将最低位转换为asc码输出
    		mov ah,02h
    		int 21h
    		loop next2;共循环16次
    		
    		mov ah,4ch
    		int 21h
    	code ends
    		end start
    

    运行环境

    使用的运行环境为DOSBOX0.74版本,这是我有史以来感觉最容易搞定的编译环境,编译环境的安装我就不在赘述了。

    代码运行过程

    1、首先建立**.asm文件
    2、汇编语言运行的代码过程需要
    masm进行汇编
    3、汇编无误之后要进行
    link链接
    4、链接无误会产生
    .exe文件,重点来了,你可以直接运行此可执行文件会输出0000 0001 0000 0000**,如果你想要查看ax寄存器,那么你需要在第二次循环之前查看。

    查看ax值

    -u指令进行反汇编,查看汇编代码对应的指令值
    在这里插入图片描述
    -g27执行到第二次循环开始之前,可以查看此时的寄存器的值
    在这里插入图片描述

    代码运行细节

    1、loop为直到型循环,所以需要循环几次,你的cx值就设为几。本代码第一次循环因为在进入循环之前已经处理过一次,所以只需要循环4次,即cx=4。第二次循环需要循环16次,因此cx=10h。
    2、有时候我们只需要使用低八位寄存器来获得数据,但是在运算过程中我们会涉及到高位的寄存器,很有可能会影响我们的运算结果。所以在某些细节上面需要把高位寄存器置0,就像本程序中某些情况下的ah和dh,细节很重要。

    展开全文
  • 描述将十六进制数转换成十进制数 输入第一行有一个整数T,表示共有T组数据 接下来T行,每一行为一个16进制无符号正整数,位数不超过8位,中的a-f均大写字母,前没有多余的0 输出输出共T行,每一行是一组数据的...
  • 符号十六进制数十进制 int main() { unsigned int a = 0xd8; if (a & 0x80) { a -= 1; a = ~a; a &= 0x7f; a = -a; } printf("a %d\n", a); return 0; } 示例的变量八位数 ...
  • 3)将补码格式的十进制小数转换符号十六进制数 4)将生成的十六进制数写入.coe文件中 代码实现 % generate the random number for i = 1: 10 M(i,1)= (-1)^i *rand(1); end N = length(M); Radix = 16; Coeff...
  • 基础练习 十六进制十进制 时间限制:1.0s 内存限制:512.0MB ... 注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。 样例输入 FFFF 样例输出 65535 #include<bits/stdc++.h>...
  • 它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E...
  • 它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E...
  • 数字转换为十六进制数

    千次阅读 2020-08-17 23:18:38
    “数字转换为十六进制数”1 给定一个整数,编写一个算法将这个转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。 注意: 十六进制中所有字母(a-f)都必须是小写。 十六进制字符串中不能包含多余的前导零...
  • (3)将补码表示的负数,转符号十进制数。方法:要转换的变量先减1,再反转所有位( 反转所有位的意思是每一个0变为1,每一个1变为0 ),然后提取除了最高位之外的所有位,最后在变量前面加上负号(-)。 ...
  • 它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E...
  •  输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。 输入格式  输入一行,包含一个正整数n。 输出格式  按从小到大的顺序输出满足条件的整数,每个整数占一行。 样例输入 52 样例...
  • %SHEX2DEC 将带符号十六进制字符串转换为十进制整数。 %D = SHEX2DEC(H)解释十六进制字符串H并在D中返回% 等效十进制数。 % % 如果 H 是字符数组或字符串元胞数组,则解释每一行% 作为十六进制字符串。 % % ...
  • 第六章 二进制、八进制、十六进制 6.1 什么需要八进制和十六进制? 6.2 二、八、十六进制数转换到十进制数 6.2.1 二进制转换为十进制... 6.2.5 十六进制数转换成十进制数 6.2.6 十六进制数的表达方法 6....
  • 1. 读取文件用到函数TextRead a=textread('test.txt','%s'); 结果如下形式: {'16b4'} {'16b0'} {'16b0'} {'16a8'} {'16a4'} ...2. 将十六进制转换成十进制用到函数hex2Dec b=hex2dec(a) 612...
  • 十进制十六进制

    2019-02-22 11:37:54
    它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E...
  • 代码功能实现将有符号十六进制数据转换符号十进制数据并存储到txt文件 clear all clc %% 读入十六进制数据 fid = fopen('C:\Users\Administrator\Desktop\test\data_hex.txt', 'r+'); if fid == -1 ...
  • 它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E...
  • 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换正的十进制数后输出。 注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。 样例输入 FFFF 样例输出 65535 问题描述 十六...
  • 前言 写这个是因为再一次使用计算器分不清进制表示。。。 正文 二进制是Binary,简写为B或BIN 八进制是Octal,简写为O或OCT 十进制为Decimal,简写为D或DEC 十六进制为Hexadecimal,简写为H或HEX
  • 二进制是Binary,简写为B八进制是Octal,简写为O十进制为Decimal,简写为D十六进制为Hexadecimal,简写为H
  • 采用数字0到9和字母A到F共个计数符号,这些符号十进制的数字的对应关系如下表:十六进制01234567十进制01234567十六进制89ABCDEF十进制89101112131415例如,用十六进制表示,用十进制表示也就是13+14=1×16+11。...
  • 二进制是Binary,简写为B;八进制是Octal,简写为O;十进制为Decimal,简写为D;十六进制为Hexadecimal,简写为H。 八进制和十六进制需通过二进制转换,再最后转换十进制。 八进制与十六进制不可互转。 ...
  • 十六进制数是在程序设计时经常要使用到的一种整数的表示方式它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的...
  • 十进制转化为十六进制

    千次阅读 2018-09-12 17:32:52
    它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E...
  • 二进制、八进制、十进制十六进制关系及转换

    万次阅读 多人点赞 2019-02-21 21:20:22
    二进制,八进制,十进制十六进制之间的关系是什么?浮点数是什么回事? 本文内容参考自王达老师的《深入理解计算机网络》一书&amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;中国水利水电出版社&amp;amp;amp;amp...
  • C语言中十六进制十进制两种实现方法C语言 · 十六进制十进制问题描述从键盘输入一个不超过8位的正的十六进制数字符串,将它转换正的十进制数后输出。注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 66,982
精华内容 26,792
关键字:

十六进制的符号d表示成十进制数为