1366627538 发表于 2016-8-15 21:21:29

<每日一帖>---第四贴----c必知常识

我又来喽!!!! 首先尼,欢迎大家再次滴到来,再次表示感谢。(让我低调的装个深沉{:5_92:} )

               每天都能给大家带来知识,也是我的快乐,我也不会发什么特别技术的帖子,只是希望刚接触的小白能够少走弯路,能够更好的进入这个编程道路,让我的苦逼换来你们的幸福,那么进入正题,位运算符的问题。

            首先呢,没接触过位运算符的同胞们,我就先稍稍的普及一下知识。告诉你们这些能干啥用,至于怎么用的好呢,靠自己喽。

                     1>   按位与运算符:   & 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0
                                                       | 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1
                                                       ^按位异或 若参加运算的两个二进制位值相同则为0,否则为1
                                                       ~ 取反 ~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0
                                                       << 左移 用来将一个数的各二进制位全部左移N位,右补0
                                                      >> 右移 将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0

                  2>   哎!这就是大概的用法。那我说这些东西普遍用在哪里,你们想想怎么来实现吧!!!!!
            这玩意的存在就是为了剩内存,你想想操作系统为了做的都是挺短小精干,能省地方就省地方呗,那么一个字节有八个位,你想想着8个位置要是当做开关的话,就能够代表8个开关,如果定义一个int类型也忒浪费了吧,这样的话,你只需要操控这些位运算符就可以实现对这些开关的控制,在运行API函数(就是为了更方便的使用函数,把这些函数封装在API中,里面可能包含多个函数。算是一个接口)的时候,你可以通过这个值来判断是否进行这个函数的操作啊,或者一些其他的操作。

               3> 呦,不错哦(周董的台词)
            那么,左移运算符跟右移运算符尼,搞着玩意干啥子嘛。想想在内存中都是以二进制的形式存储的数据,一个字节有八个位置,每当左移一位不就是乘以2吗,比如十进制的数,你乘以10,就是在左移一位吧。看它的基数是多少,乘以多少就是代表左移。
            那右移就是除呗~~~~~~         (这种方式跟以前的编译器的乘除有关系的。)
            
             4>那么咱们现在就来谈谈我们使用中常见的错误吧。
                  例如:   if(a&b==0)    即使a&b的值是0 它也不会运行跳进去的,a&b这只是一个操作,并不会真正的对ab进行改变。那么怎么解决呢

               可以这样    int c=a&b;
                                       if(c==0){}          这样不就间接的跳过这个坎去了吗??

                                             
                                                                                    本少侠以简洁的话,帮大家整理下思路。那么也请大家多多支持!!!

                                                                                                                              ~~~~~~~~你们的支持是我最大的动力!!!!!!!!!!               

樱花 发表于 2016-8-16 22:43:32

常来看

1366627538 发表于 2016-8-17 12:34:43

樱花 发表于 2016-8-16 22:43
常来看

细节决定成败,基础好之后才能更好的发展。估摸着大家都喜欢看一些特别高大上的游戏源码了,别逼我连续出几期坦克大战的实现步骤{:5_96:}

樱花 发表于 2016-8-17 16:49:23

1366627538 发表于 2016-8-17 12:34
细节决定成败,基础好之后才能更好的发展。估摸着大家都喜欢看一些特别高大上的游戏源码了,别逼我连续出 ...

没事每日帖子挺好的   {:5_106:}

~风介~ 发表于 2016-8-17 22:00:08

排版不行,建议Markdown转html后再贴到论坛上来。

1366627538 发表于 2016-8-18 07:39:31

~风介~ 发表于 2016-8-17 22:00
排版不行,建议Markdown转html后再贴到论坛上来。

谢谢
页: [1]
查看完整版本: <每日一帖>---第四贴----c必知常识