问一个弱弱的问题,关于位运算

HUANG_JH 2004-08-12 03:06:14
看到一个汉字转拼音的函数

* 函数名称: MakeSpellCode
* 参数: [In] strText: String
* nMode: int
* [Out] 得到的拼音: String
* Space 是否用空格隔开每个拼音 true 隔开
* nMode 二进制功能位说明
* X X X X X X X X X X X X X X X X
* 3 2 1

如何给 nMode 的最后3位单独赋值??

...全文
95 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
FlyindanceDDr 2004-08-12
pigja(朱健安) 比我的方法要好些...最近老是昏头...
  • 打赏
  • 举报
回复
FlyindanceDDr 2004-08-12
这样做就可以:

假设要将后3位赋值为010,010对应的数是2,那么:
nMode = (nMode & ~(0x7)) | 2 ;

(nMode & ~(0x7))的作用是将nMode的最后3位置为0,~(0x7)的位排列是:1111111111111000
  • 打赏
  • 举报
回复
pigja 2004-08-12
如果你想把最后一位赋成1,那么nMode |= 0x00000001;想赋成0,那么nMode &= 0xFFFFFFFE.
倒数第二位为1,nMode |= 0x00000002;为0,nMode &= 0xFFFFFFFD.
倒数第三位为1,nMode |= 0x00000004;为0,nMode &= 0xFFFFFFFB.
  • 打赏
  • 举报
回复
RookieStar 2004-08-12
函数体呢?
  • 打赏
  • 举报
回复
相关推荐
HzToPy汉字转拼音函数说明 函数原型如下: HzToPy(Hz As String, Optional Sep As String = "", Optional ShowNotation As Boolean = True, Optional ShowInitialOnly As Boolean, Optional ShowOnlyOneChar As Boolean = True) As String 参数名 参数类型 说明 第1个参数 Hz 字符型 为汉字字符串 第2个参数 Sep 字符型,可选 设定拼音间隔字符,默认为空("") 第3个参数 ShowNotation 布尔型,可选 设定是否显示注音符号,默认显示 第4个参数 ShowInitialOnly 布尔型,可选 设定是否仅显示拼音首字,默认显示全部 第5个参数 ShowOnlyOneChar 布尔型,可选 设定是否仅显示拼音首字母("zh"显示为"z"),默认只显示首字母 应用举例 目标汉字: 汉字转拼音举例 1 显示用空格分开的拼音 公式: =HzToPy($b$19," ") 结果: hàn zì zhuǎn pīn yīn jǔ lì 2 显示用空格分开的拼音,同时不显示注音符号 公式: =HzToPy($b$19," ",false) 结果: han zi zhuan pin yin ju li 3 显示用空格分开的拼音,不显示注音符号,同时仅显示拼音的首字,并大写 公式: =HzToPy($b$19," ",false,true,false) 结果: H Z ZH P Y J L 4 显示用空格分开的拼音,不显示注音符号,同时仅显示拼音的首字母,并大写 公式: =HzToPy($b$19," ",false,true) 结果: H Z Z P Y J L GetPy()说明 取汉字拼音的首字母(大写) 公式 =GETPY(B35) 结果 GS 函数原型:getpy(string) PinYin()说明 取单个汉字或首个汉字首拼音首字母(小写) 公式 =pinyin(B43) 结果 g 函数原型:pinyin(string)
发帖
C语言

6.6w+

社区成员

C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
帖子事件
创建了帖子
2004-08-12 03:06
社区公告
暂无公告