相关疑难解决方法(0)

实现基于整数的幂函数pow(int,int)的最有效方法

将整数提升到C中另一个整数的幂的最有效方法是什么?

// 2^3
pow(2,3) == 8

// 5^5
pow(5,5) == 3125
Run Code Online (Sandbox Code Playgroud)

c algorithm math exponentiation

239
推荐指数
8
解决办法
19万
查看次数

将浮点数舍入到预定义点的常规网格

我想将浮点数舍入到给定的精度,例如:

0.051 i want to convert it to
0.1

0.049 i want to convert it to
0.0

0.56 i want to convert it to
0.6

0.54 i want to convert it to
0.5
Run Code Online (Sandbox Code Playgroud)

我无法更好地解释它,但其原因是将点位置(如0.131f,0.432f)转换为网格中瓷砖的位置(如0.1f,0.4f).

c++ rounding

27
推荐指数
4
解决办法
6万
查看次数

在C++中将整数提升为正整数幂的正确方法是什么?

我们知道由于各种原因,C++中没有标准的整数幂函数.我用相当小的整数执行精确算术,计算能力的正确方法是什么?

c++ math numerical

26
推荐指数
2
解决办法
6485
查看次数

如何在C中连接两个整数

Stack Overflow用许多其他语言回答了这个问题,但不是C.所以我想我会问,因为我有同样的问题.

如何在C中连接两个整数?

例:

x = 11;
y = 11;
Run Code Online (Sandbox Code Playgroud)

我想z如下:

z = 1111;
Run Code Online (Sandbox Code Playgroud)

其他示例尝试使用字符串执行此操作.没有字符串的方法是什么?

我正在寻找一种在C中执行此操作的有效方法,因为在我的特定用法中,这将成为代码的时间关键部分.

提前致谢!

c math optimization mathematical-optimization

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

c ++整数的力量,模板元编程

我想创建一个返回整数幂的函数.请阅读fmuecke 在c ++中的整数幂解决方案 .

但是,我想将他的解决方案推广到任意类型T.由于c ++ 11有constexpr,我想这是可能的.

天真,我尝试过类似的东西,

template<class T, int N>
inline constexpr T pow(const T x){
    return pow<N-1>(x) * x;
}
template<class T>
inline constexpr T pow<T, 1>(const T x){
    return x;
}
template<class T>
inline constexpr T pow<T, 0>(const T x){
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

实际上这种方法失败了,因为不允许对函数模板进行部分特化.

还有一个问题.我听说编译器是否在编译时评估constexpr函数是由编译器决定的.如何强制它计算一般类型.我从某处读到,对于整数consts来说,最简单的一个方法是将它包装在std :: integral_const :: value中.

c++ templates template-meta-programming c++11

15
推荐指数
3
解决办法
8919
查看次数