我有这个代码:
[Flags]
public enum MyUriType {
ForParse,
ForDownload,
Unknown
}
Run Code Online (Sandbox Code Playgroud)
然后:
MyUriType uriType = MyUriType.ForDownload;
Run Code Online (Sandbox Code Playgroud)
但是,我想知道为什么这会返回true:
if ((uriType & MyUriType.ForParse) == MyUriType.ForParse)
Run Code Online (Sandbox Code Playgroud)
未在第二个代码组中设置时.请指教.
我使用的很多命令行.exe应用程序允许你标记可选输入,例如program.exe -o outputfile.txt -f F其中"-o"表示与默认值不同的可选输出文件名,其中"-F"表示关于脚本的另一个选项.
到目前为止,我一直在使用sys.arg []变量来输入文件名等我的python脚本,但是必须按照设置顺序才能将标记输入转换为python脚本?
[这一切都是因为我不小心把输入名称和输出名称按错误的顺序排列并覆盖了我的输入文件]
我想使用PyQt4 for Linux制作类似面板的应用程序.为此我需要我创建的窗口:
从阅读文档我已经知道我应该使用QtWindowFlags.但我不知道如何做到这一点.另外我相信应该有一个Qt.WindowType提示告诉WM窗口是一个"停靠"应用程序.我已经使用pygtk在这个帖子之后做了这个,但是在这里用Qt我真的不知道如何处理这个.(我更需要Qt的主题/皮肤应用程序的能力.)
下面是我制作的当前代码(没什么特别的).
import sys
from PyQt4 import QtGui
class Panel(QtGui.QWidget):
def __init__(self, parent=None): ## should the QtWindowFlag be here?
QtGui.QWidget.__init__(self, parent) ## should the QtWindowFlag be there as well?
self.setWindowTitle('QtPanel')
self.resize(QtGui.QDesktopWidget().screenGeometry().width(), 25)
self.move(0,0)
def main():
app = QtGui.QApplication(sys.argv)
panel = Panel()
panel.show()
sys.exit(app.exec_())
return 0
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
谁能帮我这个?谢谢 :)
我遇到了一些我从Boulanger和Lazzarini的"音频编程书"中获得的示例代码的问题.它应该为正弦波生成值,但是当我运行它时,我只得到-0.0000000和0.0000000的值,而不是-1.0和+1.0之间的预期值.我观察了使用断点运行的值,它看起来都很好,但是当它运行时(在调试或释放模式下)它给了我不好的值.
我在MacOSX 10.6.8上使用Xcode 3.2.6.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#ifndef M_PI
#define M_PI (3.141592654)
#endif
int main(int argc, char** argv) {
int i, nsamps;
double samp;
double twopi = 2.0 * M_PI;
double angleincr;
nsamps = 50;
angleincr = twopi * nsamps;
for (i=0; i < nsamps; i++) {
samp = sin(angleincr*i);
fprintf(stdout, "%lf\n", samp);
}
fprintf(stderr, "done\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
谢谢!:)
假设有一个C程序如下:
int main(int argc, char** argv)
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我有两个带有上面源代码的文件,一个带有'c'扩展名,另一个带有'cpp'.我将它们分别编译为C和C++程序.二进制文件是不同的.我认为C++是一种"零开销"语言?:-)我想要找到的是两个不同设置的编译器标志,其中生成的二进制文件是相同的.最好是某种语言标准,而不是任何类型的GCC扩展.
当我将一些标志传递给函数时,只有它们的值在函数调用中可见.程序员必须在函数定义中查找值对应的内容.这通常意味着查看不同的位置或再次开始键入函数调用以显示IDE提示.
// function definition in header file
void foo(bool output = false, bool formatted = false, bool debug = false);
// function call, it is not intuitive what the values mean
foo(true, false, true);
Run Code Online (Sandbox Code Playgroud)
是否有编码技术来解决这个问题?例如,这个伪代码会更直观,但显然不是有效的C++.
// function call with explicit mention of flags that should be true
foo(output, debug);
Run Code Online (Sandbox Code Playgroud)
我知道有很多选项可以明确提到这些选项,通常需要计算或语法的开销,比如使用std::unordered_map选项.使用C++ 11初始化列表时,语法开销变得更少.但是,如果存在,我想坚持一个普遍的做法.
我有这组常量声明
self.POUTPUT = 1
self.PPWM = 2
self.PINPUT = 4
self.PUNUSED = 8
self.PSONAR = 16
self.PULTRA = 32
self.PSERVOD = 64
self.PSTEPPER = 128
self.PCOUNT = 256
self.PINPUTDOWN = 512
self.PINPUTNONE = 1024
Run Code Online (Sandbox Code Playgroud)
检查值是否与任何输入状态(4,512和1024)匹配的pythonic方法是什么?额外的信息:我通常只是在简单的语言中使用位模式检查,但我想知道在Python中是否有更好的方法:)基本上它是每个引脚可以有一个上面的I/O状态但是如果一个引脚是任何然后一个动作发生,例如,如果pin == 4或512或1024 - >做某事
所以基本上,我需要的是有28,800个值可以通过索引访问,并且都可以设置为true或false.使用bool或整数数组不是一种选择,因为需要在朗姆酒时使用参数设置大小.使用矢量太慢而且内存密集.我是C++的新手,因此对如何解决这个问题一无所知,有人可以帮忙吗?
编辑:感谢所有评论的人!就像我说的,我是C++编程的新手,你的答案真的帮助我理解了向量背后的功能.因此,在每个人都说矢量不慢之后我再次检查,结果发现我的程序运行速度很慢,因为我在填充矢量时遇到了另一个错误.但特别是midor和一些程序员老兄的回答帮助我让程序比以前运行得更快,谢谢!
我试图在我的代码执行算术运算时使用CPSR标志,而不是使用一系列if语句来检查溢出,进位等,以便拥有更小,更快的代码.一个简单的例子是这个加法操作:
int16_t a = 0x5000;
int16_t b = 0x4000;
int16_t result = a+b;
uint32_t flags = getFlags();
Run Code Online (Sandbox Code Playgroud)
代码需要在各种平台上运行,因此getFlags()是允许包含特定于体系结构的程序集的代码的唯一部分.
inline uint32_t getFlags() {
uint32_t flags = 0;
asm (“mrs %0, cpsr”
: “=r” (flags)
:
: );
return flags;
}
Run Code Online (Sandbox Code Playgroud)
问题是编译器没有任何方式知道此示例中的加法操作应该设置标志,因此它生成类似于以下的指令:
ldrsh r3, [r0]
ldrsh r4, [r1]
add r3, r3, r4
strh r3, [r2]
mrs r3, cpsr
Run Code Online (Sandbox Code Playgroud)
为了使CPSR包含任何有用的东西,我需要编译器使用adds而不是add(s suffix = update CPSR).我可以在我的C代码或可能的编译器选项中更改它会导致它选择标志更新指令吗?我可以使用GCC或Clang.
如果有人可以,请帮助我!
我编写了3行汇编代码以获取RFLAGS的值:
PUBLIC x64rflags
.code
; Caller C++ function prototype: unsigned long long int x64rflags();
x64rflags PROC
pushfq ; RFLAGS into stack
pop rax ; RAX = RFLAGS
ret
x64rflags ENDP
End
Run Code Online (Sandbox Code Playgroud)
我在C ++库中使用它来检查C ++程序中的标志:
//The RFLAGS query function. Result in unsigned long long int value.
extern "C"
{
unsigned long long int x64rflags();
}
//The FLAGS bits decimal values
enum
{
FLAGS_CF = 1, //Carry
FLAGS_PF = 4, //Parity
FLAGS_AF = 16, //Adjust (Auxiliary carry)
FLAGS_ZF = 64, //Zero …Run Code Online (Sandbox Code Playgroud) flags ×10
c ×4
c++ ×4
python ×3
assembly ×2
argv ×1
arm ×1
borderless ×1
c# ×1
coding-style ×1
command-line ×1
double ×1
gcc ×1
overlap ×1
precision ×1
printf ×1
pyqt4 ×1
python-2.7 ×1