相关疑难解决方法(0)

如何计算32位整数中的设置位数?

代表数字7的8位看起来像这样:

00000111
Run Code Online (Sandbox Code Playgroud)

设置三位.

什么算法来确定32位整数中的设置位数?

algorithm binary bit-manipulation hammingweight iec10967

838
推荐指数
31
解决办法
52万
查看次数

用于测试Collat​​z猜想的C++代码比手写程序集更快 - 为什么?

我为Project Euler Q14编写了这两个解决方案,在汇编和C++中.它们是用于测试Collat​​z猜想的相同蛮力方法.装配解决方案与组装

nasm -felf64 p14.asm && gcc p14.o -o p14
Run Code Online (Sandbox Code Playgroud)

C++是用.编译的

g++ p14.cpp -o p14
Run Code Online (Sandbox Code Playgroud)

部件, p14.asm

section .data
    fmt db "%d", 10, 0

global main
extern printf

section .text

main:
    mov rcx, 1000000
    xor rdi, rdi        ; max i
    xor rsi, rsi        ; i

l1:
    dec rcx
    xor r10, r10        ; count
    mov rax, rcx

l2:
    test rax, 1
    jpe even

    mov rbx, 3
    mul rbx
    inc rax
    jmp c1

even:
    mov rbx, 2 …
Run Code Online (Sandbox Code Playgroud)

c++ optimization performance x86 assembly

803
推荐指数
8
解决办法
14万
查看次数

修剪std :: string的最佳方法是什么?

我目前正在使用以下代码来修正std::strings程序中的所有内容:

std::string s;
s.erase(s.find_last_not_of(" \n\r\t")+1);
Run Code Online (Sandbox Code Playgroud)

它工作正常,但我想知道是否有一些可能会失败的最终案例?

当然,欢迎使用优雅替代品和左侧解决方案的答案.

c++ trim stdstring

769
推荐指数
25
解决办法
65万
查看次数

你如何在gcc中从C/C++源获得汇编程序输出?

怎么做到这一点?

如果我想分析如何编译某些内容,我将如何获得发出的汇编代码?

c c++ debugging assembly gcc

340
推荐指数
14
解决办法
31万
查看次数

使用GCC生成可读组件?

我想知道如何在我的C源文件中使用GCC来转储机器代码的助记符版本,以便我可以看到我的代码被编译成什么.您可以使用Java执行此操作,但我无法找到GCC的方法.

我试图在汇编中重新编写一个C方法,看看GCC是如何做的,这将是一个很大的帮助.

c assembly gcc

238
推荐指数
9
解决办法
15万
查看次数

round()for C++中的float

我需要一个简单的浮点舍入函数,因此:

double round(double);

round(0.1) = 0
round(-0.1) = 0
round(-0.9) = -1
Run Code Online (Sandbox Code Playgroud)

我能找到ceil()floor()在math.h中-但不是round().

它是以另一个名称存在于标准C++库中,还是缺少?

c++ floating-point rounding

227
推荐指数
11
解决办法
36万
查看次数

是否可以"反编译"Windows .exe?或者至少查看大会?

我的一个朋友从Facebook下载了一些恶意软件,我很想知道它的作用而不会感染自己.我知道你不能真正反编译.exe,但我至少可以在Assembly中查看它或附加调试器吗?

编辑说它不是.NET可执行文件,没有CLI标头.

debugging assembly winapi decompiling

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

如何使用gcc以英特尔语法生成汇编代码?

gcc -S选项将以AT&T语法生成汇编代码,有没有办法用Intel语法生成文件?或者有没有办法在两者之间进行转换?

x86 assembly gcc gnu intel

144
推荐指数
3
解决办法
7万
查看次数

如何查看C++程序的汇编代码?

如何查看C++程序的汇编代码?

有什么流行的工具可以做到这一点?

c++ assembly disassembly

128
推荐指数
9
解决办法
8万
查看次数

Gnu Assembler(GAS)中的CFI指令用于什么?

在每一行之后似乎都有一个.CFI指令,而且这些ex..cfi_startproc,.cfi_endproc等等的变化很大. 这里更多.

    .file   "temp.c"
    .text
.globl main
    .type   main, @function
main:
.LFB0:
    .cfi_startproc
    pushq   %rbp
    .cfi_def_cfa_offset 16
    movq    %rsp, %rbp
    .cfi_offset 6, -16
    .cfi_def_cfa_register 6
    movl    $0, %eax
    leave
    ret
    .cfi_endproc
.LFE0:
    .size   main, .-main
.globl func
    .type   func, @function
func:
.LFB1:
    .cfi_startproc
    pushq   %rbp
    .cfi_def_cfa_offset 16
    movq    %rsp, %rbp
    .cfi_offset 6, -16
    .cfi_def_cfa_register 6
    movl    %edi, -4(%rbp)
    movl    %esi, %eax
    movb    %al, -8(%rbp)
    leave
    ret
    .cfi_endproc
.LFE1:
    .size   func, .-func
    .ident  "GCC: (Ubuntu 4.4.1-4ubuntu9) …
Run Code Online (Sandbox Code Playgroud)

assembly gnu-assembler

111
推荐指数
3
解决办法
4万
查看次数