精华内容
下载资源
问答
  • 十进制转十六进制

    2019-01-21 20:53:08
    一开始,直接找到该十进制数所能代表的十六进制位数的最高位表示的十六的次方,然后根据二者关系用循环求解,第一次提交后未能满分,先发现未考虑输入零,后又发现如若输入的刚好16的n次方的倍数,其后的...

    输入格式
      输入包含一个非负整数a,表示要转换的数。0<=a<=2147483647
    一开始,直接找到该十进制数所能代表的十六进制的位数的最高位表示的是十六的几次方,然后根据二者关系用循环求解,第一次提交后未能满分,先发现是未考虑输入零,后又发现如若输入的刚好是16的n次方的倍数,其后的零不会表示出来,便又加了“j”变量确定应输出的数的位数,不足则补零。

    #include<stdio.h>
    #include<string.h> 
    #include<stdlib.h>
    int main()
    {
    	int n;
    	scanf("%d",&n);
    	if(n==0)
    	{
    		printf("%d",0);
    		exit(0);
    	}
    	char a[100];
    	memset(a,0,sizeof(a));
    	long long q=1;
    	int j=0;
    	while(n>=q)
    	{
    		j++;
    		q*=16;
    	}
    	q/=16;
    	int i;
    	for(i=0;n!=0;i++)
    	{
    		if(n<q)//一开始少了这一步导致如257这类数输出错误
    		{
    			a[i]='0';
    			q/=16;
    		}
    		else
    		{
     		if(n/q>0&&n/q<10)
    		{
    		a[i]=(n/q+'0');
    		n=n%q;
    		q/=16;
    		}
    		else
    		{
    			a[i]=(n/q-10+'A');
    			n=n%q;
    			q/=16;
    		}
    	}
    	}
    	int len=strlen(a);
    	for(i=0;i<len;i++)
    	printf("%c",a[i]);
    	if(len<j)
    	{
    		for(i=len;i<j;i++)
    		printf("0");
    	}
    	return 0;
     } 
    
    展开全文
  • 十六进制转十进制

    2019-01-21 20:13:00
    然后确立数组的长度以确立第一位数是16的次方,之后的次方一次递减,设sum为零,而后从第一位的16的l-1次方依次加到最后一位 #include&lt;stdio.h&gt; #include&lt;math.h&gt; #include&lt;...

    考虑用字符串数组保存输入的十六进制
    然后确立数组的长度以确立第一位数是16的几次方,之后的次方一次递减,设sum为零,而后从第一位的16的l-1次方依次加到最后一位

    #include<stdio.h>
    #include<math.h>
    #include<string.h>
    int main()
    {
    	char a[1000];
    	scanf("%s",a);
    	 int l,i,l1;
    	 long long sum=0;
    	 l=strlen(a)-1;
    	 l1=l+1;
    	 for(i=0;i<l1;i++)
    	 {
    	 	if(a[i]>='0'&&a[i]<='9')
    	 	sum+=(a[i]-'0')*pow(16,l--);
    	 	else
    	 	sum+=(a[i]-'A'+10)*pow(16,l--);
    	 }
    	 printf("%lld",sum);
    	 return 0;
     } ```
    
    
    展开全文
  • 1.十进制: (1)熟记20–210的结果 2^0=1 2^1=2 2^2=4 2^3=8 2^4=16 2^5=32 2^6=64 2^7=128 ...(2)十进制逢十进一,高位加一,低位变0 (10的次方就10多少次,比如:10...备注:十进制的权10,其指数该数的位数减一(...

    1.十进制:
    (1)熟记20–210的结果
    2^0=1
    2^1=2
    2^2=4
    2^3=8
    2^4=16
    2^5=32
    2^6=64
    2^7=128
    2^8=256
    2^9=512
    2^10=1024
    (2)十进制逢十进一,高位加一,低位变0 (10的几次方就10多少次,比如:10^3就是 1010*10次)
    758 = 7.58 * 10^2
    备注:十进制的权是10,其指数是该数的位数减一(n-1)

    2.二进制:二进制逢二进一,高位加一,低位变0 (2的几次方就2多少次 比如:2^4 就是2222 次)
    (1)把十进制数758转换成二进制
    758(10)=129+1*27+126+1*25+124+1*22+12^1
    =129+0*28+127+1*26+125+1*24+023+1*22+1*21+0*20
    =0b1011110110(二进制)

      758-512=246-128= 118-64=54 -32=22-16=6-4=2-2=0
    

    3.八进制:八进制逢八进一,高位加一,低位变0 (8的几次方就8多少次 比如:8^5就是 88888次)
    (1)把十进制数758转换成八进制
    758(10)=1
    29+1*27+126+1*25+124+1*22+12^1
    =1
    29+0*28+127+1*26+125+1*24+023+1*22+121+0*20
    =1011110110(二进制)
    =1 011 110 110
    = 0o1 3 6 6(八进制)
    =183+3*82+681+6*80
    =758

    4.十六进制:十六进制逢八进一,高位加一,低位变0 (16的几次方就16多少次 比如:16^3就是 161616次)
    (1)把十进制数758转换成八进制
    758(10)=1
    29+1*27+126+1*25+124+1*22+12^1
    =1
    29+0*28+127+1*26+125+1*24+023+1*22+121+0*20
    =1011110110(二进制)
    =1 011 110 110= 0o1 3 6 6(八进制)
    =10 1111 0110 = 0x2f6(十六进制)
    =2162+f*161+616^0(十六进制转换十进制)
    = 512 + 240+ 6 =758

    例如:
    7999=0b1111100111111
    =0b1111100111111
    =1212+1*211+1210+1*29+128+1*25+124+1*23+122+1*21+12^0
    =1212+1*211+1210+1*29+128+0*27+026+1*25+124+1*23+122+1*21+1*2^0
    =1 1111 0011 1111
    =1 f 3 f

    1f3f
    =1 1111 0011 1111(十六进制转二进制:一位拆成四位)
    = 1 111 100 111 111(十六进制转八进制:需要使用二进制过渡,一位拆成四位,然后把二进制的按从右往左三位隔开)
    =0o17477

    八进制(用二进制表示): 十六进制(用二进制表示):

    		  000 -- 0                                         0000 --  0  
    	      001  -- 1                                        0001  -- 1
    	      010  -- 2                                        0010  -- 2
    	      011  -- 3                                        0011 --  3
    		  100  -- 4                                        0100  -- 4
    	      101  -- 5                                        0101  -- 5
    		  110  -- 6                                        0110  -- 6
    		  111  -- 7                                         0111  -- 7
    							                                   1000  -- 8
    															   1001  -- 9
    															   1010  -- a
    															   1011  -- b
    															   1100  -- c
    															   1101  -- d
    															   1110  -- e
    															   1111  -- f
    

    以下图可以作为参考:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 现代密码学实验之一,偏基础,原理简单,但是本次实验在用python写的时候出现了一些阻碍,也一直以来对进制的理解出现了问题导致的 0x01 原理 异或运算的原理可以简单理解为将两个数都变为二进制数,对相同的...

    0x00 前言

    现代密码学实验之一,偏基础,原理简单,但是本次实验在用python写的时候出现了一些阻碍,也是一直以来对进制的理解出现了问题导致的

    0x01 原理

    异或运算的原理可以简单理解为将两个数都变为二进制数,对相同的位数进行的计算,两个数之间,位数相同的数如果数值也相同,那么对应的位数变为0,如果数值不同则为1. 如果两个数位数不同,那么高位不变,等待位数相同再进行计算,下面给出几个实例

    几乎是最简单的一个实例,对于2进制数1,0来说,他们位数相同,所以直接进行运算,由于0,1不同,所以得到结果1

    第二个例子则是位数不同的情况,二进制数1和1110相遇,第二个数的高位111没有课对应的数,所以保持不变,而第一个数的1和第二个数的0相遇,得到结果1,最后结果变为0b1111,然后默认得到的结果会变为十进制形式

    有关十六进制的情况可以单独用来讨论,算是一个有趣的数学问题。之后又可能会单独写一篇文章分析

    0x02 实现

    代码如下:

    其中关于字符串转化为整数的方法有很多种,eval()可以得到字符串中的式子的结果,int()可以将字符串按照你想要识别的格式来获取得到。

    # 两个文件都是由十六进制字符串组成的,所以关键就在于将两个十六进制字符串转换为十六进制数,然后就行异或运算
    # 2-1 文件中输入的是1c0111001f010100061a024b53535009181c
    # 2-2 文件中输入的是686974207468652062756c6c277320657965
    # 总结:不要执着于数字的进制,不论是什么进制的数对它们进行异或运算都是相同的结果
    
    
    def x_o_r(byte1, byte2):  # 传入两个数,并返回它们的异或结果,结果为16进制数
        return hex(byte1 ^ byte2)
    
    
    f1 = open("2-1.txt", "r")
    str1 = f1.read()
    f2 = open("2-2.txt", "r")
    str2 = f2.read()
    num1 = int(str1, 16)
    num2 = int(str2, 16)
    print(x_o_r(num1, num2)[2:])
    """
    str1 = "0x" + str1
    str2 = "0x" + str2
    num1 = eval(str1)
    num2 = eval(str2)
    """
    

    0x03 总结

    在一开始写代码的时候,由于太执着于将字符串强行转化为16进制数,浪费了不少时间,甚至到最后都没有成功,突然灵光一闪才明白异或的真正含义,对于计算机而言任何东西都是由0,1组成的,所以根本不需要将它转化为某一个特定的进制,任何进制的异或得到的结果都是一样,当然,最后得到的进制在python固定是十进制数,所以如果要得到十六进制数的话可以用hex将它转化为16进制字符串。

    展开全文
  • 算法 特殊进制位数

    2020-10-24 17:53:06
    给定一个正整数,如果把它转为十六进制,那么它位数字呢? 示例 1: 输入:12345678 输出:6 解释:12345678转成十六进制为0x BC614E,即6位. 示例 2: 输入:0x12345678 输出:8 示例 3: 输入:0X12AB34 ...
  • C语言之进制

    2014-07-28 23:14:25
    N进制转十进制 ...如何判断一个数是几进制: 十六进制:0x17 八进制:017 二进制:0b11 //1 个字节 又是 8位二进制数 int a = 11; printf("%d\n", a); //%d 打印十进制整数 int b = 011; /
  • 如何判断一个数为几进制

    千次阅读 2019-10-01 23:24:22
    给定一个随意的数字,如何区分它是几进制?... 十六进制: 以0x开头的数,如0x12,x12ff,0x86等. 十进制: 第一位数不是0,不以0x开头.每单个数在0-9之间(含). 转载于:https://www.cnblogs.com/xiajianwei/p/5138698.h...
  • 程序员二进制计算器 v1.36

    热门讨论 2014-07-16 16:21:43
    当按二、八、十六进制输出时,按其补码形式输出,最高位符号位(正数为0、负数为1)。 所以此法可得到一个负数的补码表示。 (1)按二进制输出 %b或%B %b等价与%B。 %b 12 = 0b1100 %b 0xffffffff = 0b1111 ...
  • 指定任何颜色的最直接方法使用井号(#)字符,后跟六个与大小写无关的十六进制数字。 如果您不熟悉十六进制数字,它们使用16而不是10的底数。字母A到F代表“数字” 10到15。对于2位数,值16对第一位加上第二...
  • 经常会用到求随机颜色的地方,下面我总结的种简单的实现随机颜色的方式:十六进制格式(#000000-#FFFFFF)第一种比较简单的方法,这种方法先随机生成ffffff以内16进制数,然后判断位数,少于6位的用while...
  • HW实习机试

    2014-03-16 18:24:29
    1 累加求和,输入 uiMin,...2 解析协议 十六进制 转成十进制 主要 位数的关系 前个都一位 后个两位 最后四位 输入 12 1a 00 0a 00 20 00 a1 第一个 1位 第二个两位 第三个 四位 3 上三角 矩阵 输入 3-20 输出
  • 相信大家都知道在前端的颜色表示方式有多种,一种以3个或6个十六进制的数子表示,一种RGB的数字形式,还有一种直接以颜色的英文来表示。这三种都不支持透明色的。所以还有RGBA的表式方式,在RGB的的基础上...
  • 智能卡卡号格式转换

    千次阅读 2012-04-24 14:18:16
    读卡器根据物理卡号可以转换输出不同的位数和格式,各个厂家的读卡器输出不太一样,但基本上按一定的标准输出,以下常用的种格式: 1、格式1:10 位十六进制的ASCII 字符串,即10 Hex 格式。 如:某样卡...
  • 1)实现string toHex(int)把一个十进制转换成十六进制。(完全用算法实现) 2)实现一个计算大位数(如100位以上)相乘结果的函数string multiply(sting,string)。(请完全用算法实现) 3.编写函数判断计算机的字节...
  • 信息编码的学习体会

    2021-02-20 18:54:00
    1.十进制与二进制、十六进制之间的互转(包括整数与小数),算法总结: 十进制转二进制(小数)算法:每次乘以2取整数部分 二进制转十进制(小数)算法:例:0.11=1/2+1/4(2的x次幂分之一,x为小数位数,计算和) ...
  • 函数7.3 判断素数函数7.4 3阶矩阵的转置函数7.5 字符串逆序7.7 复制元音字符到另一字符串7.8 输入4位数,输出的数字之间要求两两空格没写7.10 找出字符串中最长的单词7.11 冒泡排序7.12 牛顿迭代法求根7.13 递归求n...
  • 109、printf 功能:格式化打印数据。默认打印字符串不换行。 格式:printf format[arguments] 常用选项:  format:  %.ns 输出字符串,n输出个字符... %x 不带正负号的十六进制值,使用a至f表示10至15  ...
  • 学习日志

    2020-12-10 23:50:15
    基础:进制这个,十六进制就是在1到9后面加了a到f,不区分大小写,这个我就曾经犯过迷糊,还有二进制表示小数和负数这部分,尤其要注意;C语言的个简单符号语言什么按位取反:~按位与:&按位或:|,按位异或^,...
  • IC卡读卡器卡号输出格式

    千次阅读 2017-06-12 14:24:36
    IC卡的原始卡号固定的,而读卡器根据原始卡号可以转换输出不同的位数和格式,各个厂家的读卡器输出不太一样,但基本上 按一定的标准输出,...1、格式0:8位十六进制的ASCII 字符串,即8 Hex 格式。  如:某样卡读
  • C#实现字符串RSA加密与解密算法

    千次阅读 2018-05-11 10:16:43
    利用C#的加密库,实现RSA加密算法还是很容易的,因为我只是初步了解这个加密... RSA加密也很复杂,把几位数加密后,变成了很大的字符串(一般为十六进制字符串),当然也可以使用BASE64处理一下,因为加密后的数...
  • 《Java SE 6.0 编程指南》学习笔记

    千次阅读 2011-05-15 01:06:00
    个星期从学校图书馆借来《Java SE 6.0编程指南》由吴亚峰和纪超老师编写,讲解详细,写得很好。书很厚,但觉得这么一股脑地...2、JavaSE5之前,浮点型只能用十进制表示,之后可以用十六进制表示。如0.125=0X1.0p-3
  • x进制就是0~x-1构成每一位,就如二进制是0、1,八进制是0到7 数制转换 数制转换一直是计算机的一个基本问题,目前已经有了很多的解决方法。 如果是其他进制转换十进制(因为十进制多数人还是比较熟悉的,毕竟买菜时...
  • java联系题

    2013-09-18 20:22:53
    9. 设计一个类并提供一个方法,将整型值转换为二进制、十六进制和八进制值 10. 设计一个方法,接收三个参数分别年,月,日,然后返加一个Calender类型的对象,再设计一个方法接收Calender类型对象,在方法内分别...
  • 以下各数合法的十六进制整常数: 0X2A(十进制为42) 0XA0 (十进制为160) 0XFFFF (十进制为65535) 以下各数不是合法的十六进制整常数: 5A (无前缀0X) 0X3H (含有非十六进制数码) 3.十进制整常数 十进制整常数...
  • 简单讲,MD5加密一个用到哈希函数的复杂的不可逆的加密算法,只是作为了解的话,我们可以把它理解成一个黑盒,我们输入不限位数的二进制信息,经过MD5加密,它会返回一个有限位数 32位的十六进...
  • 60002 整数的十进制、八进制和十六进制表现形式 56 60003 分类统计字符 57 60006 验证歌德巴赫猜想 58 60007 使用函数输出整数的逆序数 59 60009 统计单词 60 60062 简单计算器 61 夏1周 2 70011 简化的插入排序 2 ...
  • 2004-2010软考程序员真题

    热门讨论 2012-09-27 12:33:00
    61、与十六进制数值CD等值的十进制数  A)204 B)205 C)206 D)203  62、在微型计算机内存储器中,不能用指令修改其存储内容的部分  A)RAM B)DRAM C)ROM D)SRAM  63、下列四条叙述中,正确的一条  A)...
  • 3.5.9 WEEKNUM——返回日期在一年中周 144 3.5.10 ISOWEEKNUM——返回日期在一年中的ISO周数 145 3.5.11 WORKDAY——计算与指定日期相隔数个工作日的日期 146 3.5.12 WORKDAY.INTL——计算与指定日期相隔...
  • 7. 自定义函数实现将一个十六进制数转换成十进制数(用main函数调用自定义函数实现功能)。 8. 写个函数: (1) 输入10个职工的姓名和职工号; (2) 按职工号由小到大顺序排序,姓名顺序也随之调整; (3) 要求输入一...

空空如也

空空如也

1 2 3
收藏数 51
精华内容 20
关键字:

十六进制是几位数