C/C++小技巧

一、引言

  在编程学习中,总结一些小小的技巧。

二、位运算和算术运算符之间的关系

  nginx中关于字符改大小写的实现:

#define ngx_tolower(c)      (u_char) ((c >= ‘A‘ && c <= ‘Z‘) ? (c | 0x20) : c)            // 字符转小写
#define ngx_toupper(c)      (u_char) ((c >= ‘a‘ && c <= ‘z‘) ? (c & ~0x20) : c)           // 小写字符转大写

  可以看出来,实际就是一个加0x20和减0x20的操作。

  那么就总结一下:

    +: 位或的操作;比如:+32,就是 | 0x20

     -: 与、非操作;比如:-32,就是 | ~0x20

     *: 左移

     / :  右移

    %: 与模值,比如: &1111111(256)

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。