小编new*_*int的帖子

for Python中的循环

在C/C++中,我可以有以下循环

__CODE__

在Python中如何做同样的事情?

我可以做这个

__CODE__

在Python中,它将与之相同

__CODE__ 在C/C++中.

python

56
推荐指数
5
解决办法
17万
查看次数

有符号整数上的算术位移

我试图弄清楚算术位移运算符在C中是如何工作的,以及它将如何影响带符号的32位整数.

为简单起见,假设我们在一个字节(8位)内工作:

x = 1101.0101
MSB[ 1101.0101 ]LSB
Run Code Online (Sandbox Code Playgroud)

在Stack Overflow和一些网站上阅读其他帖子,我发现: <<将转向MSB(在我的情况下向左),并用0填充"空"LSB位.

>>会向着转向LSB(向右,在我的情况),并填写"空"与MS位位

因此,x = x << 7将导致LSB移动到MSB,并将所有内容设置为0.

1000.0000
Run Code Online (Sandbox Code Playgroud)

现在,让我说我会>> 7,最后的结果.这会导致[0000.0010]?我对吗?

关于转移运营商我的假设是对的吗?

我刚在我的机器上测试过,**

int x = 1;   //000000000......01

x = x << 31; //100000000......00

x = x >> 31; //111111111......11 (Everything is filled with 1s !!!!!) 
Run Code Online (Sandbox Code Playgroud)

为什么?

c bit-manipulation

53
推荐指数
4
解决办法
8万
查看次数

Intel x86原子系统映像与Google API有什么区别(x86系统映像)

最近开始探索Android平台.在Android SDK管理器中,在Android 4.4.2(API 19)包下,有两个图像:Intel x86 Atom System Image,以及Google APIs (x86 System Image)

我想知道,这两张图片有什么区别?在Windows 7上工作,使用Android Studio并已Intel x86 Emulator Accelerator(HAXM)安装.

谢谢 !

android

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

将命令行参数传递给Eclipse中的Python脚本(Pydev)

我是Python和Eclipse的新手,在理解如何将命令行参数传递给Eclipse(Pydev)中运行的脚本时遇到一些困难.

以下链接说明了如何将命令行参数传递给python脚本.

要将命令行参数传递给模块argecho.py(来自上面链接的代码),

#argecho.py
import sys

for arg in sys.argv: 1
    print arg
Run Code Online (Sandbox Code Playgroud)

我需要输入python控制台

[you@localhost py]$ python argecho.py             
argecho.py
Run Code Online (Sandbox Code Playgroud)

要么

[you@localhost py]$ python argecho.py abc def     
argecho.py
abc
def
Run Code Online (Sandbox Code Playgroud)

我如何将相同的参数传递给Eclipse中的Python脚本(Pydev)?

谢谢 !

python eclipse pydev

24
推荐指数
2
解决办法
4万
查看次数

Ref-qualified成员函数的目的是什么?

在阅读http://en.cppreference.com/w/cpp/language/member_functions时,我遇到了一些事情,我以前没见过:lvalue/rvalue Ref-qualified member functions.他们的目的是什么?

c++ c++11

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

为什么我的Strassen的矩阵乘法变慢了?

我用C++写了两个矩阵乘法程序:常规MM (源)和Strassen的MM (源),它们都在大小为2 ^ kx 2 ^ k的矩形矩阵上运算(换句话说,是偶数大小的方阵).

结果很可怕.对于1024 x 1024矩阵,常规MM需要46.381 sec,而Strassen的MM需要1484.303 sec(25 minutes!!!!).

我试图让代码尽可能简单.在网上找到的其他Strassen的MM示例与我的代码没有太大的不同.Strassen代码的一个问题显而易见 - 我没有切换点,切换到常规MM.

我的Strassen的MM代码有哪些其他问题?

谢谢 !

直接链接到源
http://pastebin.com/HqHtFpq9
http://pastebin.com/USRQ5tuy

EDIT1.拳头,很多很棒的建议.感谢您抽出宝贵时间和分享知识.

我实施了更改(保留了我的所有代码),添加了截止点.具有截止512的2048x2048矩阵的MM已经给出了良好的结果.常规MM:191.49s Strassen的MM:112.179s显着改善.使用英特尔迅驰处理器,使用Visual Studio 2012,在史前联想X61 TabletPC上获得了结果.我将进行更多检查(以确保我得到正确的结果),并将发布结果.

c++ optimization performance matrix-multiplication strassen

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

如何使用gdbserver设置Eclipse进行远程C调试?

我是Eclipse的新手.尝试设置进行远程调试.

这是情况,我连接到运行Linux的远程机器,我正在运行Windows.

1)我已经为Eclipse安装了所有必需的工具,并且能够连接到Linux机器.

2)远程机器有 gdbserver

linux1[1]% gdbserver
Usage:  gdbserver [OPTIONS] COMM PROG [ARGS ...]
        gdbserver [OPTIONS] --attach COMM PID
        gdbserver [OPTIONS] --multi COMM

COMM may either be a tty device (for serial debugging), or
HOST:PORT to listen for a TCP connection.

Options:
  --debug               Enable debugging output.
Run Code Online (Sandbox Code Playgroud)

我需要在gdbserver???中配置任何东西吗?

3)我还应该在Eclipse中配置什么?用于远程调试?

4)我的GDB版本与远程机器GDB有什么不同?

c eclipse remote-debugging

10
推荐指数
2
解决办法
3万
查看次数

mov指令和寄存器 - 混乱!

我正在阅读"计算机系统:程序员视角",第3章解释mov说明,书中的解释让我感到困惑.

提供功能(第142页1版)

int exchange( int *xp, int y)
{
    int x = *xp;
    *xp = y;
    return x;
} 
Run Code Online (Sandbox Code Playgroud)

函数体的汇编代码

movl 8(%ebp), %eax  //Get xp  
movl 12(%ebp), %edx //Get y  
movl (%eax), %ecx   //Get x at *xp  
movl %edx, (%eax)   //Store y at *xp  
movl %ecx, %eax     //Set x as return value
Run Code Online (Sandbox Code Playgroud)

令我困惑的是,将要存储的是什么,以及
我在何处理解这一点:

movl 8(%ebp), %eax  //Get xp  
Run Code Online (Sandbox Code Playgroud)

CPU在堆栈中向上移动+8个字节(从帧指针%ebp),获取存储在该位置的值,并将该值存储在寄存器中%eax(强调 - 存储值,而不是地址)

我是对的 ?谢谢 !

assembly

10
推荐指数
2
解决办法
2万
查看次数

关于C++ 11中<chrono>头的几个问题

<chrono>在C++ 11中有几个关于新标题的问题.使用Windows 7,Visual Studio 2012.

查看示例http://en.cppreference.com/w/cpp/chrono

#include <iostream>
#include <chrono>
#include <ctime>

int fibonacci(int n)
{
    if (n < 3) return 1;
    return fibonacci(n-1) + fibonacci(n-2);
}

int main()
{
    std::chrono::time_point<std::chrono::system_clock> start, end;
    start = std::chrono::system_clock::now();
    int result = fibonacci(42);
    end = std::chrono::system_clock::now();

    int elapsed_seconds = std::chrono::duration_cast<std::chrono::seconds>
                             (end-start).count();
    std::time_t end_time = std::chrono::system_clock::to_time_t(end);

    std::cout << "finished computation at " << std::ctime(&end_time)
              << "elapsed time: " << elapsed_seconds << "s\n";
}
Run Code Online (Sandbox Code Playgroud)

可能的输出

finished computation at Sat Jun 16 20:42:57 …
Run Code Online (Sandbox Code Playgroud)

c++ stl c++11 c++-chrono

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

为什么DateTime.Now需要是线程安全的?

我正在阅读Joe的Albahari C#线程教程:

作者解释了为什么DateTime.Now需要线程安全:

只有当所有并发线程都知道并使用锁定时,才能对自定义锁定周围的对象进行包装访问.如果对象的范围很广,则可能不是这种情况.最糟糕的情况是公共类型的静态成员.例如,假设DateTime结构上的静态属性DateTime.Now不是线程安全的,并且两个并发调用可能导致输出乱码或异常.使用外部锁定解决此问题的唯一方法可能是在调用DateTime.Now之前锁定类型本身 - lock(typeof(DateTime)).只有当所有程序员都同意这样做时(这是不可能的),这才有效.此外,锁定类型会产生其自身的问题.

因此,DateTime结构上的静态成员已经过仔细编程,以确保线程安全.

根据MS docs,.NOWpublic static DateTime Now { get; },即只读属性.如果它是只读的,为什么要打扰线程安全呢?两个并发呼叫应该能够获得当前时间而不会相互干扰?

编辑:很多人指出问题不是很清楚.我确实假设它应该是安全的,因为:它是只读的,因为它是时间(总是在改变).

.net c# multithreading

10
推荐指数
2
解决办法
3814
查看次数