十进制转换二进制问题.pptx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
十进制转换二进制问题

十进制转换二进制问题西安电子科技大学信安协会 龚潇方法1、循环取余 do{ a[i++]=num%2;} while((num/=2)!=0);最常用的方法,通过循环,取num 除以 2的余数作为二进制的每个位。再将num变成num/2.循环的方式有很多很简单,就不多讲了。西安电子科技大学信安协会 龚潇方法2、函数法系统中提供了一个十进制转换成其他进制的函数,可以直接用来进行进制转换。MSDN上的函数原型:char *_itoa( int value, char *string, int radix );Value 指输入的十进制数String指输出的数保存的字符串Radix指需要转换为的进制西安电子科技大学信安协会 龚潇方法2、函数法西安电子科技大学信安协会 龚潇所以我们直接可以用一个函数就解决我们的进制转换问题。itoa(num,ch,2);这句话意思是将十进制整数num转换成二进制保存在字符串ch中。使用该函数需要的头文件是stdlib.h方法3、通过位运算进行进制转换西安电子科技大学信安协会 龚潇C语言中位运算是直接对二进制进行的操作,与十进制运算相比起来效率高得多。C语言提供位运算的功能,十分适合于编写系统软件,与如pascal等高级语言相比,具有很大优越性。在我看的DES加密算法里,很多操作运用位运算,使得算法效率相当高。位运算符有、|、^、~、、.方法3、通过位运算进行进制转换西安电子科技大学信安协会 龚潇#includestdio.hvoid main(){ int num,bit[8],i; scanf(%d,num); for(i=0;i8;i++) *(bit+i)=(numi)1; for(i=7;i=0;i--) printf(%d,*(bit+i));}方法3、通过位运算进行进制转换西安电子科技大学信安协会 龚潇比如此时我们num=22,i=3, 此时num在电脑里是以二进制储存的,为10110.*(bit+i)=(numi)1; 意思就是bit[3]=(101103)1; 101103 我们知道应该是10(因为低位舍去了),而不同长度的数据进行位运算是右对齐,所以我们101即为01,结果bit[3]=01=0.通过循环,每一位都是这样计算,我们就相当于把二进制num中每一位储存在了bit里。总结、西安电子科技大学信安协会 龚潇我学习了三种将十进制转换成二进制的方法,其中第一种较好理解,第二种更易使用,第三种效率最高。我们不仅可以将十进制数转换成二进制数,还可以将字符转换成二进制串,因为字符的ASCII 与十进制整数是对应的。写DES加密算法时就用到了这一点。

文档评论(0)

mv2323 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档