社区
C语言
帖子详情
一小段程序!
kingprg
2002-05-02 01:01:34
int countkanji(char a[])
{
char *p=a;
int han=0;
while(*p!='\0')
{
if(0xffffffff==(*p>>7) )
han++;
p++;
}
}
这句是什么意思呀?if(0xffffffff==(*p>>7)
...全文
19
17
打赏
收藏
一小段程序!
int countkanji(char a[]) { char *p=a; int han=0; while(*p!='\0') { if(0xffffffff==(*p>>7) ) han++; p++; } } 这句是什么意思呀?if(0xffffffff==(*p>>7)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
晨星
2002-05-02
打赏
举报
回复
是跟我说吗?^_^
kingprg
2002-05-02
打赏
举报
回复
谢了!
如不嫌弃,能交个朋友吗?
qq:40599461
liushmh
2002-05-02
打赏
举报
回复
散分了 ok
晨星
2002-05-02
打赏
举报
回复
哦,我明白了。
该程序时统计一个字符串中汉字所占地字节数,那名字起的也太差了,还"countkanji",为什么不“counthanzi”呢?
因为汉字的第八位是1,所以把一个汉字字符(即半个汉字)的右移7位,因为">>"是针对有符号字符类型,那么它就把这半个汉字看成了一个负的字符型,既然是负的,那么右移的时候,就在左边补“1”,如果当前是个汉字的话,那么左移7位后,就变成的0xff,其实不用跟0xffffffff比较,根0xff比较就行了,当然二者一样,因为他们都是-1的补码。
这样,最后统计出来的han就等于汉字个数的两倍(因为一个汉字两个字节。)
而如果当前字符不是汉字,那么它的最高位为“0”,是个正字符,右移时,左端补“0”,于是一个英文字符右移7位后,肯定变成“0x00”,于是不可能等于“0xffffffff”。
liushmh
2002-05-02
打赏
举报
回复
那就是了, 普通的ASCII 字符高位 0 而汉字为1 右移 后高位全为1 自然就要和
FFFFFFF比了,FFFFFFF......长度取决与机器的字长。
kingprg
2002-05-02
打赏
举报
回复
敲这个地址:http://www.csdn.net/Expert/Forum.asp?typenum=1&Roomid=4&whichpage=6
kingprg
2002-05-02
打赏
举报
回复
在csdn上看到的
liushmh
2002-05-02
打赏
举报
回复
请问你的程序从何而来?
kingprg
2002-05-02
打赏
举报
回复
这也是我刚才看到的一段,作者的意图是计算汉字的个数。
kingprg
2002-05-02
打赏
举报
回复
问题就在于为什么要和ffffff比较呢?
与其它的比较不行吗?
liushmh
2002-05-02
打赏
举报
回复
应该是判断该字符是否是 ASCII 字符吧!
晨星
2002-05-02
打赏
举报
回复
Re:为什么要和FFFFFF比较呢?
我怎么会知道,又不知道程序的意图。
liushmh
2002-05-02
打赏
举报
回复
如果 字符串未结束
判断*p 所指向的字符 右移7位 是否和十六进制的ffffffff 相等。
若相等
fan++;
再判断下一个字符
kingprg
2002-05-02
打赏
举报
回复
为什么要和FFFFFF比较呢?
liushmh
2002-05-02
打赏
举报
回复
判断*p 所指向的字符 右移7位 是否和十六进制的ffffffff 相等。
kingprg
2002-05-02
打赏
举报
回复
能否把这段程序解释一下?
指教!
晨星
2002-05-02
打赏
举报
回复
就相当于:
char c = *p;
c = c >> 7;
if(c == -1)。
微信小
程序
系统教程C#版[3/3阶段]_微信小
程序
电商系统
微信小
程序
系统教程[初级阶段],微信小
程序
0基础学起,讲解微信小
程序
开发的基础知识。 微信小
程序
系统教程共有“微信小
程序
系统教程[初级阶段]”、“微信小
程序
系统教程[中级阶段]——核心技术”、“微信小
程序
系统教程[阶段]客服消息+微信支付+九宝电商系统”。 “微信小
程序
系统教程[阶段]全套课程”包含: 1.微信小
程序
系统教程[阶段]_客服消息 2.微信小
程序
系统教程[阶段]_微信支付 3.微信小
程序
系统教程[阶段]_九宝电商系统 学习“微信小
程序
系统教程[阶段]”要求有微信小
程序
的基础。建议先学习“微信小
程序
系统教程[初级阶段]”、“微信小
程序
系统教程[中级阶段]”,后在报名“微信小
程序
系统教程[阶段]”。 阶段讲解的客服消息,是针对小
程序
的。后台
程序
用接近底层的技术,没有使用三方技术。这样降低同学们学习成本。 微信支付,这部分课程很有难度,要求同学们认真听讲,有不会的技术问题可以请教老师。购买课程后请联系老师,提供单号,给你源
程序
。 九宝电商系统是一套十分适和学习、项目的课程。既可以系统的学习微信小
程序
相关知识,还可以修改后上线。 “微信小
程序
系统教程[中级阶段]——核心技术”重点讲解微信小
程序
事件、组件、API 微信小
程序
系统教程[初级阶段],微信小
程序
0基础学起,讲解微信小
程序
开发的基础知识。 购买课程的同学,可赠送就九宝老师编写的《微信小
程序
开发宝典》。 购课请咨询qq2326321088
微信小
程序
- 详细实现每隔一段时间请求后端接口获取最新数据,页面每隔一段时间就触发一个函数(实时刷新数据,页面每隔 N 秒自动请求接口数据)让页面每隔一段时间就请求一次接口,详细示例教程可运行示例
微信小
程序
每隔几秒自动请求接口数据,微信小
程序
怎么实现页面停留时,每隔几秒钟自己请求接口数据,微信小
程序
每隔 N秒,自动请求接口获取列表,自动更新页面数据,微信小
程序
用户停留在页面上怎么每隔一段时间就...
微信小
程序
开发教程!
摘要:本文档将带你一步步创建完成一个微信小
程序
,并可以在手机上体验该小
程序
的实际效果。这个小
程序
的首页将会显示欢迎语以及当前用户的微信头像,点击头像,可以在新开的页面中查看当前小
程序
的启动日志。微信...
支付宝小
程序
云亮相!向小
程序
生态开放全面云服务
支付宝小
程序
云是支付宝为小
程序
生态伙伴打造的一站式云产品,于2023年6月16日正式开放公测。该产品提供了简单可信的云托管和云开发服务,并开放智能营销、风险智能等核心科技能力和云效能产品。支持多端接入,帮助...
MATLAB中注释一段
程序
在MATLAB中,可以注释一段
程序
。 使用“%{”和“%}”。 例如 %{ 。。。 %} 即可。 经典方法是用 if 0,但缺点是不够直观,注释掉的内容仍然保持代码的颜色。现在可以用 %和{ 的组合。输入%{后,后面的代码...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章