相关疑难解决方法(0)

检查数字是偶数还是奇数

我如何确定给定数字是偶数还是奇数?我一直想要解决这个问题很长一段时间并没有得到任何结果.

java

119
推荐指数
6
解决办法
45万
查看次数

如何轻松地对C代码进行基准测试?

是否有一个简单的库来衡量执行部分C代码所需的时间?我想要的是:

int main(){
    benchmarkBegin(0);
    //Do work
    double elapsedMS = benchmarkEnd(0);

    benchmarkBegin(1)
    //Do some more work
    double elapsedMS2 = benchmarkEnd(1);

    double speedup = benchmarkSpeedup(elapsedMS, elapsedMS2); //Calculates relative speedup
}
Run Code Online (Sandbox Code Playgroud)

如果图书馆允许你进行多次运行,平均它们并计算时间差异,这也会很棒!

c benchmarking

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

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

快速可分性测试(2,3,4,5,...,16)?

什么是最快的可分性测试?比如说,给定一个小端架构和一个32位有符号整数:如何计算得非常快,一个数字可被2,3,4,5整除,......最多16?

警告:给定的代码仅为示例.每一行都是独立的!使用模运算的明显解决方案在许多处理器上都很慢,这些处理器没有DIV硬件(像许多ARM一样).有些编译器也无法进行这样的优化(例如,如果divisor是函数的参数或依赖于某些东西).

Divisible_by_1 = do();
Divisible_by_2 = if (!(number & 1)) do();
Divisible_by_3 = ?
Divisible_by_4 = ?
Divisible_by_5 = ?
Divisible_by_6 = ?
Divisible_by_7 = ?
Divisible_by_8 = ?
Divisible_by_9 = ?
Divisible_by_10 = ?
Divisible_by_11 = ?
Divisible_by_12 = ?
Divisible_by_13 = ?
Divisible_by_14 = ?
Divisible_by_15 = ?
Divisible_by_16 = if(!number & 0x0000000F) do();
Run Code Online (Sandbox Code Playgroud)

和特殊情况:

Divisible_by_2k = if(number & (tk-1)) do();  //tk=2**k=(2*2*2*...) k times
Run Code Online (Sandbox Code Playgroud)

c c++ math assembly bit-manipulation

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

一个人的补充是一个现实世界的问题,还是一个历史问题?

另一个问题是关于确定C中的奇数/偶数,并且惯用(x&1)方法被正确地标记为基于补体的系统被破坏,C标准允许.

系统真的存在于计算机博物馆之外的"现实世界"吗?自1970年代以来,我一直在编码,我很确定我从来没有见过这样的野兽.

有人在为这样的系统开发或测试代码吗?如果没有,我们是否应该担心这些事情,还是应该将它们与纸带和打卡一起放入101室

c history numerical

28
推荐指数
8
解决办法
5528
查看次数

您会使用num%2或num&1来检查数字是否均匀?

那么,至少有两种低级方法可以确定给定的数字是否是偶数:

 1. if (num%2 == 0) { /* even */ } 
 2. if ((num&1) == 0) { /* even */ }
Run Code Online (Sandbox Code Playgroud)

我认为第二种选择更加优雅和有意义,而这正是我经常使用的选择.但这不仅仅是品味问题; 实际性能可能会有所不同:通常按位操作(例如logial和here)比mod(或div)操作更有效.当然,你可能会争辩说有些编译器无论如何都能优化它,我同意......但有些人不会.

另一点是,对于经验不足的程序员来说,第二个可能有点难以理解.关于这一点,我回答说,如果这些程序员花很短的时间来理解这种语句,它可能只会让每个人受益.

你怎么看?

只有当num无符号整数或具有二进制补码表示的负数时,给定的两个片段才是正确的. - 正如一些评论所说的那样.

c++ numbers readability bitwise-operators low-level

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

如何检查变量是否在C中均匀

如何在不使用"%"运算符的情况下检查C中的变量(int)是否为偶数(即非奇数)?我在linux平台上运行.

谢谢.

c

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

如何使用除法(/)或百分位(%)符号来计算出一个偶数或奇数的数字

如何使用除法(/)或百分位(%)符号来计算出一个偶数或奇数的数字.

这一次采访向我询问.问我用java编写程序.

我们不应该使用像(\n),百分位数(%)这样的算术符号.

java

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