0x1、0x2那些是什么意思啊?

M_zhangzhimiao 2016-10-22 07:18:02
unsigned int male=0x1
unsigned int french =0x2
unsigned int german =0x4
unsigned int italian =0x8
...全文
4848 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ooolinux 2016-10-22
  • 打赏
  • 举报
回复
比如male | french 作为实参传递给被调函数的int man形参,被调函数里面可以这样写: if(man & male) // 与运算结果第0位为1 { if(man & french) // 第1位为1 是法国男人; if(man & german) // 第2位为1 是德国男人; if(man & italian) // 第3位为1 是意大利男人; }
abc_ustone 2016-10-22
  • 打赏
  • 举报
回复
ooolinux 2016-10-22
  • 打赏
  • 举报
回复
引用 2 楼 u010165006 的回复:
这种经常用来定义各种选项常量,各个选项之间可以用|运算连接,比如 male | french (等于3)作为参数传递给函数,被调用函数得到3这个值就可以判断包含哪些选项(一定是包含male和french两个选项)然后做出分支处理。
因为male | french 位运算=00000011(二进制),包含第0位和第1位两个选项。
ooolinux 2016-10-22
  • 打赏
  • 举报
回复
这种经常用来定义各种选项常量,各个选项之间可以用|运算连接,比如 male | french (等于3)作为参数传递给函数,被调用函数得到3这个值就可以判断包含哪些选项(一定是包含male和french两个选项)然后做出分支处理。
ooolinux 2016-10-22
  • 打赏
  • 举报
回复
16进制,对应二进制: unsigned int male=0x1 —— 00000001 unsigned int french =0x2 —— 00000010 unsigned int german =0x4 —— 00000100 unsigned int italian =0x8 —— 00001000 1在不同的位上

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧