小编Kiw*_*der的帖子

count_ones 在 Rust 中是如何实现的?

我尝试寻找 Rust 如何实现count_ones()。我很好奇,因为它似乎远远优于我自己的天真的实现(不是开玩笑),而且我真的很想知道为什么它如此高效。我的猜测是 Rust 正在使用一些汇编来完成这项工作。为了完整起见,这是我的尝试:

/*
* my attempt to implement count_ones for i32 types
* but this is much slower than the default
* implementation.
*/
fn count_ones(num: i32) -> u32 {
    let mut ans: u32 = 0;
    let mut _num = num;

    while _num > 0 {
        if _num & 0x1 == 0x1 {
            ans += 1;
        }
        _num >>= 1;
    }

    ans
}
Run Code Online (Sandbox Code Playgroud)

我找到了这个 on the rust repo, but I can't make sense of …

rust

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

如何在 Haskell 中执行命令列表?

我是 Haskell 的新手,我一直在system为我执行 shell 命令,因为我只对退出状态感兴趣。我注意到,因为我可以做这样的事情:

ls <- system "ls"
pwd <- system "pwd"
Run Code Online (Sandbox Code Playgroud)

这正确地执行了两个命令。我正在考虑执行这些命令的数组,例如

lsAndPwd <- return $ system <$> ["ls", "pwd"]
Run Code Online (Sandbox Code Playgroud)

我很惊讶这实际上并没有执行任何操作。这会编译,我检查了lsAndPwd它的类型是否正确,[IO GHC.IO.Exception.ExitCode]但从未执行过命令。这是怎么回事,我怎样才能让它发挥作用?

haskell

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

C - 这个逗号分隔的声明是什么意思

为这个愚蠢的问题道歉,但我不知道如何为此找到参考。我找到了一些 TCP 服务器的代码,这一行让我很困惑:

int master_sockfd, client_sockfds[3] = {0}, cli_sockfd, client_games_started[3];

上面的变量都没有事先初始化,所以看起来它是在这里声明的。有人可以帮我理解这是什么意思吗?如果我记得正确{0}设置int为 0,但在这种情况下我无法理解。我也很困惑如何看起来有两个声明和三个赋值。是的,所有编译的东西都没有错误/警告。谢谢!

c syntax

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

标签 统计

c ×1

haskell ×1

rust ×1

syntax ×1