zoukankan      html  css  js  c++  java
  • NOJ---页面无法显示--位运算

    好吧 先解决下 -- 页面无法显示

    该死的Oj 不知道为什么突然无法打开了 =-= 我也就忘记题号了

    主要现在这场乌拉圭-哥伦比亚 刚开始  忙里偷闲 把这题来写了

    明天 不对 应该是今天 不知道要睡到什么时候 =-=

    先来贴下关于位运算的操作要求及解释--------我好像上次贴过 我忘记了 orz

    位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。C语言提供了6个位操作

    运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。
    C语言提供的位运算符列表:
    运算符 含义 描述
    & 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0
    | 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1
    ^ 按位异或 若参加运算的两个二进制位值相同则为0,否则为1
    ~ 取反 ~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0
    << 左移 用来将一个数的各二进制位全部左移N位,右补0
    >> 右移 将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0

    // 感觉 紫色 最显眼啊

    题目链接我暂时不能给出了 = 我明天睡醒 会补上

     1 #include <iostream>
     2 using namespace std;
     3 
     4 int main() 
     5 {
     6     unsigned long long num; // 这边使用unsigned long long 可以满足题目的数据要求 
     7     while (cin >> num) 
     8     {
     9         int len = 0;
    10         unsigned long long temp = num;
    11         while (temp) // 求出将 num -> 转成2进制数后的序列长度 如5->101 即 len = 3 
    12         {
    13             temp>>= 1;
    14             len++;
    15         }
    16         temp = num;
    17         for (int i = 0; i < len; i++) 
    18         {
    19             cout << temp;
    20             if (temp & (1LL << (len - 1)) ) //这里的( 1LL <<(len-1) )就是从同样长度的二进制序列高位到低位为1开始枚举 
    21             { // 如果&成功 那么代表num的二进制序列的最左边(即最高位)是1 那么通过下面的操作就将1给移到了最后 
    22                 temp = ( (temp ^ (1LL << (len - 1)) ) << 1 ) | 1;
    23             } //主要是利用了 ^ 的性质 和 << 将二进制的数全左移并且低位用0补齐 然后与1 | 那么就是1了 
    24             else 
    25             {
    26                 temp = temp << 1;//进入到这里 说明最左位是0 那么直接<< 
    27             }
    28             if (i < len - 1) 
    29             {
    30                 cout << " ";
    31             }
    32             else 
    33             {
    34                 cout << endl;
    35             }
    36         }
    37     }
    38     return 0;
    39 }
    View Code


    最近 喜欢直接用c++ 的cin cout来写 流畅=-=  至于会不会tle的话 天意 不行 再改为 scanf printf吧

    today:

      我来年陌生的是昨日最亲的某某

      最熟悉的陌生人

    just follow your heart
  • 相关阅读:
    canvasnode的设计思路和api介绍
    希望新浪网络学院的童鞋们加油
    和新童鞋们吃饭,见到了jeremy
    MongoDB 学习资料
    [转] Scrum框架及其背后的原则
    twisted学习资料
    创建课程表
    进程
    协程
    支付宝支付流程
  • 原文地址:https://www.cnblogs.com/radical/p/3814027.html
Copyright © 2011-2022 走看看