社区
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.....
可是速度非常慢,请问有什么好的办法吗? 谢谢
...全文
253
13
打赏
收藏
C#字符串string运行效率的问题
字节 b[7000] , 首先每个字节求异或,然后相加到一个字符串: str = ""; for (int i=0;i<7000;i++) str += ... byte[i] ^ bt_key..... 可是速度非常慢,请问有什么好的办法吗? 谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
的详细比较
51个
c#
小实例
51个
c#
实例 根据实例学习,更有效,更快捷,更实用
C#
常用的42个类
总结的常用的
C#
42个CLASS,希望能帮到大家的忙。
fastJson开发包、源码及相关api文档
fastJson是阿里巴巴开发的一套操作json数据的开发工具,号称解析
效率
比jackson还要高。
精通正则表达式
正则表达式各语言通用,这本书是经典中的经典
018-
C#
字符串
(
String
)
C#
提供了丰富的
字符串
操作方法和功能,使得
字符串
处理非常高效和灵活。以下内容将进一步探讨
C#
字符串
的高级特性、内存管理、与正则表达式的结合以及实际开发中的应用场景和性能优化策略。通过合理运用
C#
提供的
字符串
特性和工具,可以高效解决各种文本处理
问题
,同时避免常见的性能陷阱。通过掌握
C#
字符串
的基础和高级操作,可以高效地进行文本处理,满足各种开发需求。如果
字符串
仅在特定场景下需要计算,可以选择延迟计算,避免不必要的操作。是一种可变的
字符串
类,适合频繁拼接或修改
字符串
时使用。
C#
111,098
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章