• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#BitArray(转载)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 最近这几天真的比较郁闷,却说不出为什么郁闷。很多事要做,但是都因为能力问题,时间都花得事倍功半。星期一又要来了,作业什么时候才能编好?
       今天早上在弄了一个早上的DES算法,要是引用C#内部已封装好的DES还不简单?设置好密钥和向量就可以了,但是这样老师给的分数不高啊,而且自己真的想自己写一个出来。写着写着突然发现以现在自己已自学到的水平还很不够,还没有深入地去操作过某类数据,例如比特。DES的明文64比特,分左右两部分,这好办,前32位是4个byte,后32位是4个byte。但是,密钥除去8位校检码,只有56位啊,分左右两个部分那就是28位,28%8!=0哦,怎么办?于是就想到自己对C#里的位操作还是一无所知。
       还好上网找了一下,看到了一线希望,是BitArray给我带来的希望。以下引用msdn的例子:

  1using System;
  2using System.Collections;
  3

      BitArray myBA1 = new BitArray( 5 );
      myBA1为5位,取用默认初始化,5位都为 False。即为0,由此可见,平时一位的值0和1在C#里面变成False和True;
      byte[] myBytes = new byte[5] { 1, 2, 3, 4, 5 };
      BitArray myBA3 = new BitArray( myBytes );
      myBytes为byte数组,内容为1,2,3,4,5;二进制就是00000001,00000010,00000011,00000100,00000101,myBA3就为相应的5*8=40位;
      bool[] myBools = new bool[5] { true, false, true, true, false };
      BitArray myBA4 = new BitArray( myBools );
      看输出,bool就想当于一位,myBools是长度为5的数组,变成myBA4后,也是5位;
      int[]  myInts  = new int[5] { 6, 7, 8, 9, 10 };
      BitArray myBA5 = new BitArray( myInts );
      int是32位的,5个,换成BitArray当然就是5*32=160。

      还应注意的是PrintValues方法,参数(IEnumerable myList, int myWidth ),foreach()循环,每行打印8个。有了这个我想DES做起来主要问题就不大了。做好了发上来给大家看看啊。

原文地址:http://www.cnblogs.com/lanse777/archive/2007/04/01/695801.aspx


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#后台生成验证码发布时间:2022-07-10
下一篇:
c#ExportToExcels发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap