VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1889|回复: 18

给我一写建议

[复制链接]

2

主题

7

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-2-29 21:00:01 | 显示全部楼层 |阅读模式

让程序产生一段64位二进制的代码。分为由5个部分组成

分别为2   3     14    20      25           2+3+14+20+25=64

其中第一部分是固定的,比如可以是 00 或者01、11 10,其他是随机生成的,然后把生成的这段代码发送给(接口?)可以使别人读的到。



应该如何想呢?


学习C#有一个多月了,是边学边干,这个简直太难了。。。我几乎一点也不会。。。大虾门给我段类似代码,或者指导小弟如何想,然后我在搞,总之,多谢多谢!
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-5-11 12:30:02 | 显示全部楼层
不太明白
回复

使用道具 举报

2

主题

7

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-5-11 23:30:01 | 显示全部楼层
2   3     14    20      25         代表的是 这5个分区分别是多少位的代码,
比如
标头  滤值  厂商识别代码 贸易项代码  序列代码
2     3      占14位       占20位    占25位
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-5-12 10:30:02 | 显示全部楼层
假如第一部分为:02
2+3+14+20+25=64
五个部分之和等于64,第二部分等于64减去第一部分后随机一个部就是第二部分,第三部分等于64-第二部分-第一部分后随机一个数,以此类推。
但是这样做有可能后面部分为00。
发到串口你就用串口控件就可以了
byte buff= new byte[4];
buff[0]=02;
buff[1]=03;
....
Write(buff,0,4)
回复

使用道具 举报

0

主题

119

帖子

67.00

积分

新手上路

Rank: 1

积分
67.00
发表于 2020-5-12 16:15:01 | 显示全部楼层
Random随机出一个数
Console.WriteLine(Convert.ToString(69, 8));//将69以8进制输出
然后附加上即可
回复

使用道具 举报

2

主题

7

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-5-12 18:00:01 | 显示全部楼层
楼上,这个是64位二进制的,所以 开头只有是 00 01 10 11四种,

我在想,先弄个10 进制的,然后转换成二进制的行不?

谢谢你的串口控件
回复

使用道具 举报

2

主题

7

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
 楼主| 发表于 2020-5-14 15:45:01 | 显示全部楼层
//将69以8进制输出

是什么意思?
回复

使用道具 举报

0

主题

22

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
发表于 2020-6-2 09:30:01 | 显示全部楼层
我在想,先弄个10 进制的,然后转换成二进制的行不?

我觉得这个方法不妨一试
回复

使用道具 举报

0

主题

110

帖子

63.00

积分

新手上路

Rank: 1

积分
63.00
发表于 2020-6-3 13:45:02 | 显示全部楼层
没太明白..

你的意思是开始两位是确定的,只需要产生后面62位即可对吗?



回复

使用道具 举报

0

主题

22

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
发表于 2020-6-5 23:15:01 | 显示全部楼层
最笨的方法

                           Random ran16=new Random();
                        string strTmp;
                        string str16 = "01 ";//初始化固定2位的数据,如01
                        while(str16.Length < (64 + 4))//四个空格位
                        {
                                strTmp = ran16.Next(0,15).ToString();
                                switch(strTmp)
                                {
                                        case "10":
                                                str16 += "A";
                                                break;
                                        case "11":
                                                str16 += "B";
                                                break;
                                        case "12":
                                                str16 += "C";
                                                break;
                                        case "13":
                                                str16 += "D";
                                                break;
                                        case "14":
                                                str16 += "E";
                                                break;
                                        case "15":
                                                str16 += "F";
                                                break;
                                        default:
                                                str16 += strTmp;
                                                break;
                                }

                                switch(str16.Length)
                                {
                                        case 6:
                                                str16 += " ";
                                                break;
                                        case 21:
                                                str16 += " ";
                                                break;
                                        case 42:
                                                str16 += " ";
                                                break;
                                        default:
                                                break;
                                }
                        }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表