小编Tyl*_*lly的帖子

如何获取负数的最后16位二进制数字并将它们连接起来?

我正在研究一些按位运算符,我想提取数字的最后16位二进制数字并对它们进行操作.我基本上想要看到像0xFFFFFFFF这样的负数,然后提取LSB FFFF并将它们连接起来,0这样我最终得到一个零,所以它看起来像0x0000FFFF.我只关心较小的负数,所以LSB应该是我需要的所有信息.

这是我在C中的方法:

#include <stdio.h>

int main(){
    int a = -1, c = 0;
    short b = (short)a;
    printf("a is %x\nb is %x",a,b);
    c = (0 << 16) | b;
    printf("\nc is %x\n", c); 
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我的思维过程是,我可以在我转换int a到一个较短,使得它看起来像FFFF,而不是FFFFFFFF我将有一个更好的时间.对我来说不幸的是,这只是打印出ffffffff变量

c int bit-manipulation bit-shift bitwise-operators

5
推荐指数
1
解决办法
89
查看次数

矢量查找功能在Visual Studio中工作但在GCC中不工作

我有一个函数可以在Visual Studio中执行我想要的操作,我将它转移到GCC以确保一切都在那里工作.

我现在因使用该std::find函数而产生了大量的编译错误.

我希望有人可以看看并帮助我找出为什么我只在GCC中收到这些错误.以下是代码示例:http://cpp.sh/6pky

// Example program
#include <iostream>
#include <string>
#include <vector>
#include <list>
#include <utility>
using namespace std;

int main()
{
   vector < list < pair <string, string> > > v;
   v.resize(15);
   pair<string, string> k ("foo", "bar");
   auto & whichList = v[2];
   if(find(begin(whichList), end(whichList), k) != end(whichList))
       cout << "true";

}
Run Code Online (Sandbox Code Playgroud)

有问题的部分是find(begin(whichList), end(whichList), k).

我收到一个错误,说我无法比较一对配对列表(我本周一直在处理的问题),我理解.我很好奇为什么VS2015不仅不识别这个错误,而且还适当地执行任务.

c++ g++ visual-studio c++11

1
推荐指数
1
解决办法
152
查看次数

How to write the scope resolution operator function header for nested classes?

Hey I have a fairly simple question that some quick google searches couldnt solve so I'm coming here for some help.

I'm having trouble just getting my assignment off the ground because I can't even write the skeleton code!

Basically I have a header file like so:

namespace foo{
    class A {
    public:
        class B {
            B(); 
            int size();
            const int last();
        };
    };
}
Run Code Online (Sandbox Code Playgroud)

And I want to know how to refer to these guys outside of the file …

c++ implementation templates scope-resolution data-structures

0
推荐指数
1
解决办法
1423
查看次数

如何在数组结构的数组中制作嵌套数组的副本

我正在尝试制作嵌套数组的副本,并且似乎我继续通过我的尝试进行参考。

更具体地说,我试图拥有一个数组数组,其中每个子数组都建立在前一个数组上。这是我的尝试:

#!/usr/bin/perl -w
use strict;
use warnings;

my @aoa=[(1)];
my $i = 2;
foreach (@aoa){
  my $temp = $_;#copy current array into $temp
  push $temp, $i++;
  push @aoa, $temp;
  last if $_->[-1] == 5;
} 
#print contents of @aoa
foreach my $row (@aoa){
  foreach my $ele (@$row){
    print "$ele  ";
  }
  print "\n";
}
Run Code Online (Sandbox Code Playgroud)

我的输出是:

1  2  3  4  5  
1  2  3  4  5  
1  2  3  4  5  
1  2  3  4  5  
1  2  3  4 …
Run Code Online (Sandbox Code Playgroud)

arrays perl reference shallow-copy

0
推荐指数
1
解决办法
63
查看次数