panther
C++博客
首页
新随笔
新文章
联系
聚合
管理
posts - 43,comments - 3,trackbacks - 0
<
2011年3月
>
日
一
二
三
四
五
六
27
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
algorithm(3)
P2P tech
Software Development(7)
vim技巧(1)
Web相关(3)
win32 UI
Windows Programming(1)
创业
随笔档案
2012年11月 (1)
2011年7月 (1)
2011年3月 (1)
2010年5月 (5)
2010年4月 (2)
2010年3月 (1)
2009年10月 (8)
2009年9月 (2)
2009年2月 (1)
2009年1月 (1)
2008年12月 (1)
2008年11月 (1)
2008年10月 (1)
2008年3月 (5)
2008年2月 (12)
文章档案
2011年2月 (1)
收藏夹
搜索
algorithm
programming challenges
大数阶乘的计算方法
匈牙利算法
BLOGS of nuibility
csdn
Mark's Blog
C++
GDB使用
STL SGI
VCHOME
VC知识库
阿蒙编程之家
COM 相关
COM Apartment VCHOME
COM 套间
LINUX
EMACs入门
OJ 网站
ZOJ
python
diveintopython
python简明教程
searching
egothor
mg4j
xapian
Tools
ImageCfg
sysinternal
utility-meminfo
UI技术
Direct UI
web 开发
php 开发
win32 UI
CShadeButtonST
Irregular Bitmap Dialog
office UI
windows 编程 V5
定制化右键菜单项
利用ie external对象进行ui开发
鼠标右键菜单项目
win32-debug
Advanced Windows Debugging
Crack Tutorial
CrashFinder
debugging custom filters for unhandled exceptions
debugman
depths of SEH
FxCop (code analysis tool that checks .NET app)
Kernel User-mode debug support
PE and Coff spec
PEVIEW
PREfast(static code analysis for c/c++)
remote debug session 0 process
SAL(standard annotation language)
SEH 原理
高端调试
内和调试器 SYSER
win32-Programming
ACE Strings
dependencywalker
detours for hooking api
ETW for debug and perf trace
LoadLibraryEx(DONT_RESOLVE_DLL_REFERENCES)
Memory Performance Information
NSIS学习
SID myth of Mark. R.
SID Strings
sid2user and user2sid
Synchronization Object Security and Access Rights
Taking Object Ownership
The Undocumented Functions Microsoft Windows NT
WER Setting
Windows Integrity Mechanism Resources
WINDOWS OS INTERNALS LABS
创业
道IT谈生意
代码工厂
codeproject
中国源码网
公司笔试题
emc 笔试
google笔试题
汇编编程
win32asm
软件解密教学
技术网站
神刀网
图形学相关
Lisp 画图
智力题
几个智力题
搜索
最新评论
1. re: 二分查找算法
写的很好,非常感谢!
--co
2. re: 二分查找算法[未登录]
:)
--RUI
3. re: 二分查找算法
知道了,谢谢
--Feng Yi
阅读排行榜
1. Send Message between Processes (ZZ from windows kernel programming)(2446)
2. 二分查找算法(1799)
3. 求逆序数的nlog(2*n)复杂度算法(1317)
4. python模块模板(1078)
5. IE 主页被小人篡改啦 (1067)
评论排行榜
1. 二分查找算法(3)
2. Iterator Classes(0)
3. Container Classes之Sequence(0)
4. Container Classes之Associative Containers(0)
5. Container Adapters(0)
以四节为步长 计算字符串长度
1
//
以步长为4求字符串长度
2
//
由于此程序段涉及到了对地址的解引用,所以必须确保包含'\0'的四字节内存属性标记至少包含可读
3
size_t strlen(
const
char
*
str)
4
{
5
unsigned v;
6
const
char
*
p
=
str;
7
while
(
*
p
&&
((unsigned)p
&
3
))
8
p
++
;
9
if
(
*
p
==
0
)
10
return
(size_t)(p
-
str);
11
//
每次递增4,直到找到包含'\0'的那四个字节
12
for
(v
=
0
;
!
v; p
+=
4
)
13
{
14
v
=
(
*
(unsigned
*
)p
-
0x01010101
)
&
0x80808080
;
15
if
(v)
16
v
&=
~*
(unsigned
*
)p;
17
}
18
//
计算包含'\0'的那个四个字节中'\0'前有几个字符
19
for
(; (v
&
0xff
)
==
0
; p
++
)
20
v
>>=
8
;
21
return
(size_t)(p
-
str
-
4
);
//
去除掉最后一个'p+=4'
22
}
23
posted on 2011-03-14 00:07
RUI
阅读(293)
评论(0)
编辑
收藏
引用
所属分类:
algorithm
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
以四节为步长 计算字符串长度
ZZ 统计字符串中所有子串是对称串的个数
单链表反转以及反向打印
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理