社区
C#
帖子详情
C#字符串string运行效率的问题
handi
2004-08-17 10:23:09
字节 b[7000] , 首先每个字节求异或,然后相加到一个字符串:
str = "";
for (int i=0;i<7000;i++)
str += ... byte[i] ^ bt_key.....
可是速度非常慢,请问有什么好的办法吗? 谢谢
...全文
246
13
打赏
收藏
C#字符串string运行效率的问题
字节 b[7000] , 首先每个字节求异或,然后相加到一个字符串: str = ""; for (int i=0;i<7000;i++) str += ... byte[i] ^ bt_key..... 可是速度非常慢,请问有什么好的办法吗? 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lexchou
2004-08-17
打赏
举报
回复
To btut2004:
0xFA的F和A都在闭区间[0x0,0xF]中间,一共有16个,二进制分布分别从 0000到1111
0xFA的二进制是11111010
0xFA >>4后就将前4位移到后4位来了,成了 1111
而0xFA & 0xF 就是 11111010 & 1111 =1010了:
11111010
AND 00001111
____________
00001010
所以就这样将前后4位分开了
pipibug
2004-08-17
打赏
举报
回复
lexchou强!
起名叫周lex看来是对字处理方面很自信的周
onlyxu
2004-08-17
打赏
举报
回复
用StringBuilder
handi
2004-08-17
打赏
举报
回复
这段代码是我从C++炒得。C++的运行速度很快的
张海霖
2004-08-17
打赏
举报
回复
看来我要好好补习一下了,不忙的时候我会再看的,现在还无法理解。
lexchou
2004-08-17
打赏
举报
回复
例如tmp为 0xFA
tmp>>4后就等于 0xF了,在HEX_TABLE中第0xF位的是字符 'F'
tmp & 0xf后就等于 0xA了,在HEX_TABLE中第0xA位的字符是'A'
所以这样就完成了Byte -> String的快速转换了
张海霖
2004-08-17
打赏
举报
回复
sb[idx++]=HEX_TABLE[tmp >>4];//你右移它想达到什么目的
sb[idx++]=HEX_TABLE[tmp & 0xf];//执行与操作干什么?
iiboy
2004-08-17
打赏
举报
回复
嗯!
像這樣的處理,也許不會有很大的改進之處吧,除非有更快速的CPU與更多的Memory
lexchou
2004-08-17
打赏
举报
回复
bt_key是从他的代码里抄的。
看他代码,应该是XOR加密。bt_key应该是byte类型的密钥(key)
张海霖
2004-08-17
打赏
举报
回复
学习,看不懂,bt_key是什么?
能具体讲一下吗?
lexchou
2004-08-17
打赏
举报
回复
const string HEX_TABLE="0123456789ABCDEF";
StringBuilder sb=new StringBuilder();
sb.SetLength(7000*2);
byte tmp;
int idx=0;
for(int i=0;i<7000;i++)
{
tmp=byte[i]^bt_key;
sb[idx++]=HEX_TABLE[tmp >>4];
sb[idx++]=HEX_TABLE[tmp & 0xf];
}
MessageBox.Show(sb.ToString());
改用这种方法,效率可以极大提升
lexchou
2004-08-17
打赏
举报
回复
对于你问题的解决方法,可以用StringBuilder来代替String。例如可以先分配好长度,然后在通过索引来访问每个字符。或者用Append方法来添加
lexchou
2004-08-17
打赏
举报
回复
http://community.csdn.net/Expert/TopicView.asp?id=3233892
Java的string、StringBuffer、C++(C++ Builder)的AnsiString、STL String、Delphi的String和汇编写的类StringBuilder、C#的StringBuilder、C#的String
的详细比较
C#
基础语法入门教程、基VS2019(net网站开发系列)
讲解开发软件Visual Studio 2019的下载、安装、
c#
的基础语法、基础语法实战讲解。 主要涉及:开发软件下载、安装、初步体验;
C#
入门实例和概要;
C#
数据类型和运算符;...
C#
string
字符串
;
C#
数组;
C#
常用类
c#
之
字符串
效率
比较
1.三者在执行速度方面的比较:
String
Builder >
String
Buffer >
String
String
Builder的头文件 using System.Text;...
String
:
字符串
常量
String
Buffer:
字符串
变量
String
Builder:字符...
C#
中的
字符串
,
String
类和
String
Builder类
这使得处理这类应用程序的程序员在
字符串
处理的
效率
问题
上需要花费额外的心思. 本章会研究
C#
处理
字符串
的方法, 分析如何使用
String
类, 最后还会介绍如何用
String
Builder类. 当程序需要对
String
对象进行许多改变时会...
C#
字符串
操作
C#
字符串
操作 一、
字符串
操作常用方法 ToUpper():将字符转换成大写形式,仅对字母有效。返回值是转换后的
字符串
。 ToLower():将字符转换成小写形式,仅对字母有效。返回值是转换后的
字符串
。 Equals():比较两个...
C#
.Net
String
字符串
效率
提高-
字符串
拼接
下面来说说
字符串
拼接的
效率
提升。 1. 减少装箱 值类型与引用类型之间的转换存在装箱与拆箱操作;将值类型转换成引用类型的操作叫装箱,将引用类型转换成值类型叫拆箱。 整数类型在与
字符串
进行拼接操作时,并不...
C#
110,536
社区成员
642,578
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章