123456十进制转变十六进制转rgb解过程

当前位置: >>
数字逻辑电路基础知识
课程的性质及任务1. 本课程是一门数字电路方面的入门技术基 础课,是研究各种数字电路基本单元、数字 电路分析方法及逻辑设计的一门应用性很强 学科。2. 学生通过本课程的学习,掌握一些有关数 字电路的基本理论、分析方法和基本技能, 培养学生分析、解决有关电子电路问题的能 力,为今后进一步学习打下一定的基础。 讲授内容? ? ? ? ? ? 第一章 第二章 第三章 第四章 第五章 第六章 数字逻辑电路基础知识 逻辑门电路 逻辑代数与逻辑函数 组合逻辑电路 触发器 时序逻辑电路 第一章数字逻辑电路基础知识? 数字电路处理的 信号是数字信号, 而数字信号的时 间变量是离散的, 这种信号也常称 为离散时间信号。1.1 数字电路的特点1.2 数制1.3 数制之间的转换 1.4 二进制代码 1.5 基本逻辑运算 1.1 数字电路的特点(1)数字信号常用二进制数来表示。每位数有二个 数码,即0和1。将实际中彼此联系又相互对立的两 种状态抽象出来用0和1来表示,称为逻辑0和逻辑1。 而且在电路上,可用电子器件的开关特性来实现, 由此形成数字信号,所以数字电路又可称为数字逻 辑电路。 (2)数字电路中,器件常工作在开关状态。 (3)数字电路研究的对象是电路输入与输出的逻辑 关系,即逻辑功能。 (4)数字电路的基本单元电路是逻辑门和触发器。 1.1 数字电路的特点(5)数字电路的分析工具是逻辑代数,表达电路的 功能主要用功能表、真值表、逻辑表达式、卡诺图 和波形图。 (6)数字信号常用矩形脉冲表示。特征参数有:脉 冲幅度UM,表示脉冲幅值;脉冲宽度tW,表示脉冲 持续作用的时间;周期T,表示周期性的脉冲信号前 后两次出现的时间间隔;占空比q,表示脉冲宽度tW 占整个周期T的百分数,即q= (tW / T )100% 1.2 数制1.十进制数(Decimal) ? 特点:0,1……9,十个数码,“逢十进一”。 ? 表示方法:ND=dn-1×10n-1+ dn-2×10n-2 + ……+d1×101+ d0×100+……+ d-m×10-m 式中,di为各位数的数码, 10为基数,10i为各位 数的权,每一位数值为di×10i。 ? 例如: 3+9×102+9×101+5×100 2.二进制数(Binary) ? 特点:0,1,二个数码,“逢二进一”。 ? 展开式:NB=bn-1×2n-1+ bn-2×2n-2 + ……+b1×21+ b0×20+……+ b-m×2-m 式中,bi为各位数的数 码, 2为基数,2i为各位数的权。 ?例如:一个二进制数N B=可展开为:×23+1×22+0×21+1×20+1×2-1+0×2-2 +1×2-3 ? 加减运算规则:逢二进一,借一还二。例如计算二 进制数:和。被加数 1101 加 数 +1110 和 11011被减数 减 数 差1 00111? 优点:第一,只有两个数码,只需反映两种状态的 元件就可表示一位数,基本单元结构简单。第二, 储存和传递可靠。第三,运算简便。 3.十六进制(Hexadecimal)? 由于用二进制表示一个较大的数,位数太多,书 写和阅读不方便,因此在计算机中还常常使用十 六进制数。特点:0~9,A ~ F,16个数码, “逢十六进一”。 ? 展开式:NH=hn-1×16n-1+ hn-2×16n-2 + ……+h1×161+ h0×160+……+ h-m×16-m 式中,hi为各位数的数码, 16为基数,16i为各 位数的权。 ? 例如:一个十六进制数DFC.8 可展开为: DFC.8= D×162+ F×161+C×160+8×16-1 = 13×162+15×161+12×160+8×16-1 3. 数制的表示符号 ? 上述数制表示方法可以推广到任意的R进制。在R 进制中有R个数码,基数为R,其各位数码的权是R 的幂,其展开式为: (N)R=an-1……a0a-1…… a-m =an×Rn-1+……+a0×R0+a-1×R-1+……+a-m×R-m 1 =∑ai×Ri ? 为了区别出不同进位制表示的数,常用下标或尾符。 D、B、H分别表示十、二、十六进制数。 ? 例如: (1995)D=(7CB)H =()B 或 1995D =7CBH=B ? 对于十进制数可以不写下标或尾符。 1.3 不同进制数之间的转换一.任意进制数→十进制数: ? 各位系数乘权值之和(展开式之值)=十进制数。 ? 例如: ()B=1×23+1×21+1×20+1×2-1+1×2-3 =(11.625)D (DFC.8)H =13×162+15×161+12×20+8×16-1 =(3580 .5)D 二. 二进制数←→十六进制数? 因为24=16,所以四位二进制数正好能表示一位十 六进制数的16个数码。反过来一位十六进制数能 表示四位二进制数。 ? 例如: (3AF.2)H =11.0)B 3 A F 2 ()B=00=(7D.C)H 0 00 7 D C ? 注意:当二进制数转换为十六进制数时,以小数 点为界,整数部分自右向左每四位一份,不足前 面补0;小数部分从左向右每四位一份,不足后面 补0。 三. 十进制数→二进制数、十六进制数1.整数的转换 ? 整数转换一般采用“除基取余”法。用基数除整数, 得商再被基数除,直至商为0;每除一次取余数,依 次从低排向高。由余数排列的数就是转换的结果。 ? 例1: 将十进制数39转换成二进制数。 ? 解:二进制数的基数为2,所以用2作除数,转换过程 如下: 除数 整数 余数 转换结果: 1 b0) 低位 2 39 ( (39)D=(100111)B 1 b1) 2 19 ( 验证如下:(100111)R 1 b2) 2 9 ( =1×25+1×22+1×21 0 b3) 2 4 ( +1×20 0 b4) 2 =32+4+2+1=39 2 ( 1 b5)高位 2 1 ( 0 1.整数的转换 ?例2:将十进制数208转 换成十六进制数。 ?解:十六进制数的基数 为16,除基所得余数可 为0~F中任一数码。转 换过程如下:16 16 208 13 0 余 0 余 13 即(D)H?例3:将数123456 转换 成二进制数。 ?解:可先转换成十六进 制数,再直接写出二进 制数。16 123456 余 0 16 7716 余 4 16 482 余 2 16 30 余 14即(E)H 16 1 余 1 16 0结果:(208)D=(D0)H结果: (123456)D=(1E240)H =(1 00 0000)B 2.小数的转换? 采用“乘基取整”法。将待转换数的基数反复乘以其小数 部分,直到小数部分为0或达到转换精度,依次取积的整数, 从最高小数位排到最低小数位。 ? 例1:将十进制小数0.625转换成二进制数。 解 用基数2乘小数 取整 0.625 × 2 1.250 1 (b-1) 高位 × 2 0.50 0 (b-2) ×2 1.0 1 (b-3) 低位 转换结果:(0.625)D=(0.101)B ?若小数部分永不为0,可根据精度要求的位数决定转换后 的小数位数。 2.小数的转换 ? 例2:将十进制小数0.625转换成十六进制数。 ? 解 16×0.625=10.0 取整 为(A)H (0.625)D=(0.A)H? 例3:将十进制数208.625转换成二、十六进制数。 ? 解 将整数部分与小数部分分别转换,利用前面 例题的结果得: (208.625)D=(D0.A)H 利用十六进制与二进制数之间的转换方法可以得到 (D0.A)H =(1)B 不同进位计数制对照表十进制 0 二进制 0000 十六进制 0 十进制 8 二进制 1000 十六进制 812 3 4 5000100 010112 3 4 5910 11 12 13100100 11019A B C D670110011167141511101111EF 1.4 二进制代码? 数字系统中,为了表示各种信息,常用一组特定的二进制数 来表示所规定的字母、数字和符号等信息,称为二进制代码。? 建立这种二进制代码的过程称为编码。常用的二进制代码有 自然二进制代码、二-十进制代码(BCD码) 和ASCII码。1. 自然二进制代码? 自然二进制代码通常用来表示数值的大小。例如,十进制数 59的数值用自然二进制代码表示,可表示为111011。? 值得注意:这里的自然二进制代码虽然与二进制数的写法一 样,但两者的概念不同,前者是代码,即用111011这个代码 表示数值59,而后者的二进制数,是一种数制。 2. 二-十进制代码(BCD码―Binary Coded Decimal)? BCD码是用二进制编码来表示十进制数。因为一位十进制 数有0~9十个数码,至少需要四位二进制编码才能表示一位 十进制数。四位二进制数可以表示十六种不同的状态,用它 来表示一位十进制数时就要丢掉六种状态。根据所用十种状 态与一位十进制数码对应关系的不同,产生了各种BCD码, 最常用的是8421BCD码。 ? 例如: (387)D=(11)BCD (直接表示) ? BCD码转换成二进制数是不直接的。方法是:先转成十进 制数,再转成二进制数。反相转换亦是如此。 ? 例如: (10)BCD=(876)D=()B。 (1100)B=(12)D=()BCD 几种二进制代码十进制数 0 1 2 3 4 5 6 7 8 9自然二进 8421BCD 2421BCD 4221BCD 5421BCD 制代码10 01 00 01 00 11 00 11 10 11 10 11 10 01 00 10
3. ASCII码? ASCII码(American Standard Code for Information Interchange美国标准信息交换码) 是用7位二进制数码表示 数字、字母或符号的代码。它已成为计算机通用代码。b b bb3b2b1b010 01 00 10016 5 4000NUL SOH STX ETX EOT ENQ ACK BEL BS HT001DLE DC1 DC2 DC3 DC4 NAK SYN EBT CAN EM010SP ! ” # $ % & ‘ ( )011 0 1 2 3 4 5 6 7 8 9100@ A B C D E F G G H I101P Q R S T U V W X Y110、 a b c d e f g h i111p q r s t u v w x y? 例如,已知字母G,ASCII码是 ; ASCII码0111001,表示数字9。 1.5 基本逻辑运算? 所谓逻辑,就是指事物的某种因果关系抽象出来的结果。在数字电路中,因果关系抽象出来表现为电路的输入(原 因或条件)与输出(结果)之间的关系,这些关系是通过逻辑运算电路来实现的。输入和输出统称为逻辑变量。? 逻辑变量只有两个值,即0和1,没有中间值。 ? 0和1并不表示数量的大小,只表示两个对立的逻辑状态。 ? 逻辑运算可以用文字描述,亦可用逻辑表达式描述,还可 以用表格(这种表格称为真值表)和图形( 卡诺图、波形图)描述。? 在逻辑代数中有三个基本逻辑运算,即与、或、非逻辑运 算。 一. 与逻辑运算? 因果关系----当决定一个事件的所 有条件都成立,事件才发生。 ? 逻辑表达式: F=A? =AB B ? 与逻辑运算规则 A B F 0 ?0 = 0 0 ?1 = 0 1 ?0 = 0 1 ?1 = 1 ? 将输入逻辑变量取值的所有组合与 对应输出变量的取值列成的表格称 为真值表。ABF电路实例 与逻辑真值表 A B F=A? B 0 0 0 0 1 0 1 0 0 1 1 1 ? 与逻辑关系: 输入全1,输出为1, 输入有0,输出为0。 二. 或逻辑运算? 因果关系----在决定一个事件的 各个条件中,只要其中一个或者 一个以上的条件成立,事件就会 发生。 ? 逻辑表达式: F=A+B 或逻辑真值表 ? 与逻辑运算规则 A B F A B F=A? B 0+0=0 0 0 0 0+1=1 0 1 1 1+0=1 1 0 1 1+1=1 1 1 1 ? 或逻辑关系 输入全0 ,输出为0 , 输入有1 ,输出1为。A B F 三. 非逻辑运算? 因果关系----因果对立。非逻辑运 算又称为反相运算。 ? 逻辑表达式: F=? ? 非逻辑运算规则 A F R A 电路实例 非逻辑真值表 A F=? 0 1 1 0Fī=0 ō= 1? 非逻辑关系 输入为0 ,输出为 1 , 输入为1 ,输出为0 。实现与、或、非三种逻辑运算的电子电路称 为与门、或门、非门,统称为基本逻辑门。 小结1.数字电路处理的信号是数字信号,数字信号在数值上和时 间上均是离散的。 2.数字信号常用二进制数来表示。在数字电路中,常用数字 1和0表示电平的高和低。 3.二进制数的加、减运算规则是逢二进一,借一还二。 4.十六进制是二进制的简写,它是以16为基数的计数体制。 一个数可以在十进制、二进制和十六进制之间相互转换。 5.二进制数码常用来表示十进制数(BCD码)或表示数字、 字母或符号(ASCII码)。 6.分析和设计数字电路使用的数学工具是逻辑代数,在逻辑 代数中有三个基本逻辑运算,即与、或、非逻辑运算,逻 辑运算可以用文字、逻辑表达式和真值表描述。 与逻辑关系:输入全1,输出为1,输入有0,输出为0。 与逻辑关系:输入全0 ,输出为0 ,输入有1 ,输出1为。 与逻辑关系:输入为0 ,输出为 1 ,输入为1 ,输出为0 。
更多搜索:
All rights reserved Powered by
文档资料库内容来自网络,如有侵犯请联系客服。 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
二进制、十进制、十六进制整数转换的笔算方法
下载积分:2800
内容提示:二进制、十进制、十六进制整数转换的笔算方法
文档格式:PDF|
浏览次数:17|
上传日期: 12:00:40|
文档星级:
全文阅读已结束,如果下载本文需要使用
 2800 积分
下载此文档
该用户还上传了这些文档
二进制、十进制、十六进制整数转换的笔算方法
关注微信公众号fas文件格式研究之(一)(二)(三)(原来写的,转到这里来)
fas文件格式研究(一)
今天没什么事,写一点研究的心得&
先介绍以下几种文件:1、.lsp文件是lisp源程序文件的扩展名,这种文件在运行时需要翻译成中间代码才能在cad上执行,这种中间代码相当于fas的代码,在加载完lisp文件后,lisp文件被翻译成中间代码,驻留在内存中,这时我们可以在内存中看到这段代码,所以有网友在说lisp文件运行快还是fas文件运行快,运行是差不多的,只是lisp文件在加载的时候需要被翻译成中间代码,消耗了一点时间,运行完全是和fas文件一样的2、.fas文件fas文件称为一种快速加载文件,这种文件省去了加载时的翻译时间,所以相对较快一些,vlx和fas文件是autocad公司自己设计开发的一种文件。由于文件被翻译成中间代码,也保护了开发者的版权,但是这种文件并不是完全没有漏洞的,fas文件把资源代码加密成不直接可见的代码,但我们想一下,他既然能加密,在调用的时候当然要解密资源,这一点大家都可以验证一下,用内存工具打开内存可以看到这些代码
累了,今天先写到这里,写的比较乱,请见谅,有空着重介绍fas的文件格式.
fas文件格式研究(二)
今天继续写一点,接着上一篇fas的研究3、关于vlx&& vlx相当于lsp、fas等资源文件的打包文件,在打包的时候先判断是否有lsp文件,如果有的话,先编译成fas文件,然后把fas文件和其他资源一起打入包内,vlx也是经过仔细设计出来的文件,里面包含了很多校验,但是比起fas文件,vlx要容易的多,还想提一点就是vlx的限制:首先就是各个文件的文件名:当然是字符串了,字符串长度不能大于23个,包含24,中文减半,否则编译的时候会提示你,vlx把资源打入包内省去了路径的设置,方便管理,可以说是大家的好帮手。如果要研究包内的fas文件,首先是要把包内的fas解包出来,当然这一步不是很难,到时候会仔细介绍这一步。&& 我想下面要好好准备一下写fas文件格式了,这对我来说很难,因为很多地方我也是一知半解,但希望能开阔大家的思路,fas文件应该是采用了某种文件格式,但是对文件格式我研究不多,里面的大部分指令都是为了加快cad执行速度的,几乎所有的数据都采用十六进制,当然也有少部分是10进制,所以先给大家介绍一下这些工具,大家先学一下,熟悉一下工具的使用,到时候大家不要问工具使用方面的问题,大家先看一下这些工具:1、OllyDbg:一款动态调试软件2、winhex:一款强大的支持内存编辑的十六进制软件,必须熟悉这个工具,数据的复制,选择等&& 先写到这里,办公室好冷啊,受不了.
fas文件格式研究(三)
今天讲fas文件格式:
首先还是熟悉一些基本常识:1、进制十进制:123456十六进制:0x123456二进制:对于fas我们用不上,不介绍了通常fas文件里面用到了这两种进制的表示方法,fas文件大部分都是用十六进制表示,是因为十六进制是一种比较高效的表示,一位能存放的最大数是f,相对于十进制的16,(cpu只能识别二进制编码)
2、数据存储如果熟悉这方面的朋友可以略过,比如一个大小为三字节的数据:0x01E240,整数为123456,在fas文件内的存放顺序是这样的:0x40 0xE2 0x01 正好相反了,也就是说高位放在后面,低位放到前面
3、基本数据类型字节(Byte)为一个字节,占用两位、字(Word,占两个字节,占4位)和双字(Dword,四个字节,占8位),Word和Dword相当于无符号的整型和无符号长整型。
4、下面介绍fas 文件结构首先我们在vlide中敲入如下代码:(alert &hello world&)然后保存为first,编译,然后用winhex打开这个文件,得到如下:首先把winhex设置为10进制表示偏移显示:Offset&&&&& 0& 1& 2& 3& 4& 5& 6& 7&& 8& 9 10 11 12 13 14 15&& 0D 0A 20 46 41 53 34 2D& 46 49 4C 45 20 3B 20 44&& .. FAS4-FILE ; D&& 6F 20 6E 6F 74 20 63 68& 61 6E 67 65 20 69 74 21&& o not change it!&& 0D 0A 31 0D 0A 31 20 24& 20 24 0D 0A 38 32 20 34&& ..1..1 $ $..82 4&& 20 24 13 FF 73 54 E7 4B& 31 6F 15 38 7E 15 43 4A&&& $.?sT鏚1o.8~.CJ&& 4B 52 49 4E 28 64 3F 58& CF 43 55 E7 2C 30 5D 0F&& KRIN(d?X螩U?0].&& 12 26 67 27 77 66 68 69& 6D 63 30 32 07 FE 76 55&& .&g'wfhimc02.U&& ED 78 6D 5D 07 51 47 14& 42 11 0D 1A 4E 0F 62 31&& 韝m].QG.B...N.b1&& 71 1B EA 73 55 E7 79 38& 5E 07 18 4E 16 43 24 06&& q.阺U鐈8^..N.C$.&& 1A 0D 08 74 15 4A 4D B3& C1 94 73 0A 3B 66 61 73&& ...t.JM沉攕.;fas&& 34 20 63 72 75 6E 63 68& 0A 3B 24 3B 41 31 2F 34&& 4 crunch.;$;A1/4&& 2F 30 37&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& /07首先文件头是一个标志:FAS4-FILE,确保是fas文件,Do not change it!提示不要修改他,前两行解决了下面看第三行:..1..1 $ $..82 4&& 第一个1是用户自定义函数代码的长度,第二个是字符串个数,如果都是1的话代表没有定义函数,由于刚才我们只写了一句代码,所以没有自定义函数,如果有defun语句的出现,这里就不是1了。82:代表包括字符串在内的所有初始化代码的长度,包括这一句(alert &hello world&),注意这里是十进制表示4:代表字符串的个数,很奇怪,我只有三个字符串,而他确显示4个,如果有研究过的能否指出是否正确,注意这里是十进制表示下面解读第四行:&& 20 24 13 FF 73 54 E7 4B& 31 6F 15 38 7E 15 43 4A&&& $.?sT鏚1o.8~.CJ第一个字节是20,表示流的开始(流的概念我也说的不是很清楚,感觉这样表述比较贴切,也就是说一段代码的开始),后面是我们需要的代码,而现在看起来什么都看不出来,不急,我们待会再来讲怎么解码的。那么这段代码有多长呢?刚才在第三行我们看到了:82是代码的长度,所以这段代码的长度是82个字节,我们从开始选择82个字节长度的区域,复制下来得到如下:Offset&&&&& 0& 1& 2& 3& 4& 5& 6& 7&& 8& 9 10 11 12 13 14 15
&&&&&&&& 13 FF 73 54 E7 4B& 31 6F 15 38 7E 15 43 4A&&&& .?sT鏚1o.8~.CJ&& 4B 52 49 4E 28 64 3F 58& CF 43 55 E7 2C 30 5D 0F&& KRIN(d?X螩U?0].&& 12 26 67 27 77 66 68 69& 6D 63 30 32 07 FE 76 55&& .&g'wfhimc02.U&& ED 78 6D 5D 07 51 47 14& 42 11 0D 1A 4E 0F 62 31&& 韝m].QG.B...N.b1&& 71 1B EA 73 55 E7 79 38& 5E 07 18 4E 16 43 24 06&& q.阺U鐈8^..N.C$.&& 1A 0D 08 74&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ...t最后一个字节是74,看一下后面跟的是:字节15 ,注意这里是16进制表示,0x15=21(整数),这个表示解码密码的长度,也就是说后面长度0x15的流是密码,得到如下(用来解码刚才那82个字节长度的流):4A4DB3CBA3B后面$是一个结束标志,十六进制为24,然后跟的是fas文件编译的年月日
有一点要说明一下:这个密码是随机的,大家编译得到的和我的略有不同,所以被加密后的代码上可能和我的不同,这不妨碍我们研究,今天先写到这里,大家慢慢看,收工下班^_^
未经允许不得刊载
&&最后修改于
请各位遵纪守法并注意语言文明用C语言,如何写十进制转换十六进制的程序,要注意十六进制有ABCDEF。 - CSDN博客
用C语言,如何写十进制转换十六进制的程序,要注意十六进制有ABCDEF。
主题:用C语言,如何写十进制转换十六进制的程序
作者:&&&&& 发表时间: 17:39:00
用C语言,如何写十进制转换十六进制的程序,要注意十六进制有ABCDEF。
作者:&&&&& 发表时间: 18:09:00
只是输出的话%X...保存起来的话就模16去做好了
作者:&&&&& 发表时间: 20:29:00
取余后得的数如果&=10&转换成ABC....字母
作者:&&&&& 发表时间: 21:35:00
我没事写了个,你看看,对于小的数字,这个程序根本就不用想,所以我写了个大数字转换成16进制的:#include&&Stdio.h&#include&&Conio.h&char&result[100];int&void&change(int&*num);int&main(void){&&char&str[100];&&int&num[100];&&int&bin[300]={0};&&int&quot[100],residue=0;&&int&i,j,k=0,suffix=0,index=0;&&puts(&Input&a&decimal&number:&);&&gets(str);&&for(i=0;i&strlen(str);num[i]=str[i]-48,i++);&&j=i-1;&&while(j&=0)&&&&{&&&&&&&num[j]%2?(bin[k++]=1):(bin[k++]=0);&&&&&&&while(index&=j)&&&&&&&{&&&&&&&&&&residue+=num[index];&&&&&&&&&&if(residue&=2)&&&&&&&&&&&&quot[suffix++]=residue/2;&&&&&&&&&&else&if(index)&&&&&&&&&&&&quot[suffix++]=0;&&&&&&&&&&residue=(num[index]%2)*10;&&&&&&&&&&index++;&&&&&&&}&&&&&&&for(i=0;i&num[i]=quot[i],i++);&&&&&&&j=suffix-1;&&&&&&&residue=suffix=index=0;&&&&}&&for(i=0;i&k;change(bin+i),i+=4);&&for(i=pos-1;i&=0;printf(&%c&,result[i]),i--);&&getch();&&return&0;}void&change(int&*num){&&&if(num[3]==0&&num[2]==0&&num[1]==0&&num[0]==0)&&&&&sprintf(result+pos,&%c&,'0');&&&if(num[3]==0&&num[2]==0&&num[1]==0&&num[0]==1)&&&&&sprintf(result+pos,&%c&,'1');&&&if(num[3]==0&&num[2]==0&&num[1]==1&&num[0]==0)&&&&&sprintf(result+pos,&%c&,'2');&&&if(num[3]==0&&num[2]==0&&num[1]==1&&num[0]==1)&&&&&sprintf(result+pos,&%c&,'3');&&&if(num[3]==0&&num[2]==1&&num[1]==0&&num[0]==0)&&&&&sprintf(result+pos,&%c&,'4');&&&if(num[3]==0&&num[2]==1&&num[1]==0&&num[0]==1)&&&&&sprintf(result+pos,&%c&,'5');&&&if(num[3]==0&&num[2]==1&&num[1]==1&&num[0]==0)&&&&&sprintf(result+pos,&%c&,'6');&&&if(num[3]==0&&num[2]==1&&num[1]==1&&num[0]==1)&&&&&sprintf(result+pos,&%c&,'7');&&&if(num[3]==1&&num[2]==0&&num[1]==0&&num[0]==0)&&&&&sprintf(result+pos,&%c&,'8');&&&if(num[3]==1&&num[2]==0&&num[1]==0&&num[0]==1)&&&&&sprintf(result+pos,&%c&,'9');&&&if(num[3]==1&&num[2]==0&&num[1]==1&&num[0]==0)&&&&&sprintf(result+pos,&%c&,'A');&&&if(num[3]==1&&num[2]==0&&num[1]==1&&num[0]==1)&&&&&sprintf(result+pos,&%c&,'B');&&&if(num[3]==1&&num[2]==1&&num[1]==0&&num[0]==0)&&&&&sprintf(result+pos,&%c&,'C');&&&if(num[3]==1&&num[2]==1&&num[1]==0&&num[0]==1)&&&&&sprintf(result+pos,&%c&,'D');&&&if(num[3]==1&&num[2]==1&&num[1]==1&&num[0]==0)&&&&&sprintf(result+pos,&%c&,'E');&&&if(num[3]==1&&num[2]==1&&num[1]==1&&num[0]==1)&&&&&sprintf(result+pos,&%c&,'F');&&&pos++;}
作者:&&&&& 发表时间: 22:50:00
好吧&我也写一个#include&&stdio.h&#include&&stdlib.h&void&Conversion(int&num,int&a[],int&&i){&&do&&&&{&a[i]=num%16;&&&&&&num=num/16;&&&&&&i++;&&&&}while&(num);&&i--;}int&main(){&&int&num,a[100],i=0;&&printf(&输入想要转换的10进制数:&);&&scanf(&%d&,&num);&&printf(&/n转换成16进制数后是:&);&&Conversion(num,a,i);&&for&(int&n=i;n&=0;n--)&&&&{&if&(a[n]&=10)&&&&&&&&{&a[n]+=55;&&&&&&&&&&printf(&%c&,a[n]);&&&&&&&&&}&&&&&&else&&&&&&&{&printf(&%d&,a[n]);&&&&&&&}&&&&}&&printf(&/n&);&&return&0;}
作者:&&&&& 发表时间: 13:28:00
我也写一个#include&&stdio.h&main(){&&&&int&i;&&&&printf(&please&input&a&number:/n&);&&&&scanf(&%d&,&&i);&&&&printf(&i=%xH&,&i);&&&&return&0;}
作者:&&&&& 发表时间: 14:12:00
呵呵,一个比一个牛
作者:&&&&& 发表时间: 15:54:00
3楼太复杂!!!当大于10就直接+上一个固定的值,然后再以char输出不就可以实现ABCDEF拉
作者:&&&&& 发表时间: 17:19:00
7楼的大概没有理解3楼的意思,他指的&大整数&超出int,long范围的。
作者:&&&&& 发表时间: 12:49:00
能请阿斯兰帮我解释一下你写的这个函数:void&Conversion(int&num,int&a[],int&&i){&&do&&&&{&a[i]=num%16;&&&&&&num=num/16;&&&&&&i++;&&&&}while&(num);&&i--;}的执行过程吗?特别是中间的i++;和i--的作用.谢谢!
作者:&&&&& 发表时间: 14:49:00
 第10楼&&
程序员之家QQ群请大家加入,一起交流~~~~~~~~~~~~~~~~~~
作者:&&&&& 发表时间: 18:44:00
 第11楼&&
严的数据结构与算法中有这个题目的算法用递归!
作者:&&&&& 发表时间: 19:13:00
 第12楼&&
to&9楼&不就是经典的10进制转换成16进制的方法吗&&对16取余啊&i++&是为了把得到的数放到a[0]&a[1]&...里&&最后一个i--&是因为&当num==0时&循环要退出了&可还i++了一下&所以就i--&回去一下咯还有&我那程序&这里不太好&把数组a的值改了if&(a[n]&=10)&&&&&&&&{&a[n]+=55;&&&&&&&&&&printf(&%c&,a[n]);&&&&&&&&&}改成这样会好点if&(a[n]&=10)&&&&&&&&{&int&temp=a[n]+55;&&&&&&&&&&printf(&%c&,temp);&&&&&&&&&}这样就不改变数组a的值了&以后还可以再用
作者:&&&&& 发表时间: 19:43:00
 第13楼&&
#include&stdio.h&#include&string.h&#include&stdlib.h&int&main(){&&&&char&result[9];&&&&int&number,step=0;&&&&printf(&please&input&the&number:&);&&&&scanf(&%d&,&number);&&&&do&&&&{&&&&&&result[step]=&ABCDEF&[number%16];&&&&&&number/=16;&&&&&&step++;&&&&}while(number!=0);&&&&result[step]='/0';&&&&printf(&the&result&is:%s/n&,strrev(result));&&&&system(&pause&);&&&&return&0;}
作者:&&&&& 发表时间: 22:49:00
 第14楼&&
10进制转换成2,8,16进制最快得方法不是整除,求模,而是按位与和移位操作,实际上内存里早就放好了结果,直接拿出来就可以了num=abs(num);for(i=28;i&=0;i-=4){&&&&*a++=(num&&i)&15;}
作者:&&&&& 发表时间: 23:07:00
 第15楼&&
真要这么说的话。。直接调用系统函数吧。。char&s[N];sprintf(s,&&%X&,&n);
作者:&&&&& 发表时间: 16:27:00
 第16楼&&
看这个合你意不?#include&stdio.h&void&main(){char&b[]=&ABCDEF&;long&int&n,x;int&i,a[40];printf(&/n&Please&input&n=&);scanf(&%ld&,&n);x=n;i=0;while(x&0){a[i]=x%16;&x=x/16;&i++;}while(i&0){printf(&%c&,b[a[i-1]]);&i--;}printf(&/n&);}
作者:&&&&& 发表时间: 9:47:00
 第17楼&&
十进制转换十六进制有谁能告诉我下用switch写啊?
作者:&&&&& 发表时间: 10:39:00
 第18楼&&
先给个程序,然后再说其他的,呵呵#include&&stdio.h&int&main(void){&&int&a;&&char&s[100];&&//input&you&want&&scanf(&%d&&,&&a);&&&&sprintf(s&,&&%#x&&,&a);&&&&printf(&%s/n&&,&s);&&&system(&pause&);&&return&0;}
作者:&&&&& 发表时间: 10:40:00
 第19楼&&
先给个程序你看下,然后再说其他的,哈哈#include&&stdio.h&int&main(void){&&int&a;&&char&s[100];&&//input&a&number&you&want&&scanf(&%d&&,&&a);&&&&sprintf(s&,&&%#x&&,&a);&&&&printf(&%s/n&&,&s);&&&system(&pause&);&&return&0;}
作者:&&&&& 发表时间: 10:52:00
 第20楼&&
现在说下原理,不一定对哈,好比是有一个十进制的数&123456&,&他在内存里是以二进制表示的,当你用%d,输出的时候,他是自动的将二进制换成了10进制,同样,你用%x输出的话,他也是自动的将二进制转换成十六进制来表示。然后再来说下计算,同样是这个数,不管你是用十六进制的表现形式,十进制的表现形式,等等来计算,实际上,他都是在内部以二进制来计算的,所以你不必太在意数字的外在表现形式。这就好比是一个人,他办事的时候是不能穿衣服的,那他出去混的时候总不能不穿衣服吧,呵呵如果你是为了锻炼自己的思维而问这个问题的话,那就告诉你一个比较快的方法,先用位操作,将其转换成二进制的表现形式,然后,用个对照表,将其每四位每四位转换成相应的十六进制,呵呵,就是这样的
作者:&&&&& 发表时间: 10:54:00
 第21楼&&
看在我是新人的份上给个分吧,谢谢
作者:&&&&& 发表时间: 3:42:00
 第22楼&&
如果数字不大的话,直接用printf()的格式来输出就行了。
本文已收录于以下专栏:
相关文章推荐
状态机思路在单片机程序设计中的应用
状态机的概念
状态机是软件编程中的一个重要概念。比这个概念更重要的是对它的灵活应用。在一个思路清晰而且高效的程序中,必然有状态机的身影浮现。
有3种方式实现,其中两种是使用系统函数,另一种是直接自己编写。
使用系统函数实现要加入#include stdlib.h&,自己编写则不需要这个头文件。
下面的代码就是3种方式的实现,包括2位的整...
    int u10;
    char u16[10];
    int w=0,a...
你可以设置一个字符串数组
char HEX[16] = {'0', '1', '2', 3', '4', '5', '6', '7', '8', '9&#3...
源代码如下:
调试结果如下图所示:
C语言实现输入字符串计算单词个数
算法要求:
用户输入一串字符串,其中单词与单词之间至少一个空格甚至可能有多个空格,写一算法计算出用户每次输入的单词个数。
思路分析:
仔细分析单词什么样情况下...
缘由:程序中需要输入十六进制数再保存数据发送到下位机中。但我们在上位机中输入的其实是一串字符。我上一位同事直接用的是强转,数值不超过10还好,基本就是下位机配合上位机,但我又觉得不好,写了一段函数用来...
在C语言某个程序当中需要把文本16进制转换成对应的16进制数,比如字符串&0x1a&转换成10进制的26,可以用以下函数来实现
相关函数: atof, atoi, atol, strtod, strt...
在C语言某个程序当中需要把文本16进制转换成对应的16进制数,比如字符串&0x1a&转换成10进制的26,可以用以下函数来实现
相关函数: atof, atoi, atol, strtod, str...
他的最新文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)}

我要回帖

更多关于 十六进制转rgb 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信