基本上,正如标题所说.我想知道我怎么能加1天NSDate.
如果它是:
21st February 2011
Run Code Online (Sandbox Code Playgroud)
它会变成:
22nd February 2011
Run Code Online (Sandbox Code Playgroud)
或者如果是:
31st December 2011
Run Code Online (Sandbox Code Playgroud)
它会变成:
1st January 2012.
Run Code Online (Sandbox Code Playgroud) 您可以将负数转换为正数,如下所示:
int myInt = System.Math.Abs(-5);
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以使正数为负数?
在C中翻转双(或浮点)符号的最快方法是什么?
我想,直接访问符号位将是最快的方法,并找到以下内容:
double a = 5.0;
*(__int64*)&a |= 0x8000000000000000;
// a = -5.0
float b = 3.0;
*(int*)&b |= 0x80000000;
// b = -3.0
Run Code Online (Sandbox Code Playgroud)
但是,上述内容不适用于负数:
double a = -5.0;
*(__int64*)&a |= 0x8000000000000000;
// a = -5.0
Run Code Online (Sandbox Code Playgroud) 要求
假设现有类ICalculator的可用性,它模拟整数算术计算器并包含:
一个实例变量currentValue,它存储计算器的当前int值,并且可以被任何子类访问和修改.
方法add,sub,mul和div
ICalculator中的每个方法都接收一个int参数,并将其操作应用于currentValue并返回currentValue的新值.因此,如果currentValue的值为8且调用了sub(6),则currentValue以值2结束,并返回2.
因此,您要编写基于ICalculator的子类ICalculator2的定义.ICalculator2类有一个额外的方法,否定,不接受任何参数.否定的效果是反转currentValue的符号.例如,如果currentValue为零,则没有变化,如果是-22则变为22,如果为100,则变为-100.此外,negate返回currentValue的新值.
源代码
public class ICalculator2 extends ICalculator {
public int negate() {
int val = add(0);
if (val == -22) return val * -1;
else if (val == 100) return val * -1;
else return 0;}}
Run Code Online (Sandbox Code Playgroud)
备注:
更多提示:
您可能想要使用100以外的数字
您可能想要使用22以外的数字
你确定要使用:val
提示:
在语句中切换正值和负值的最佳方法是什么(在布尔值的示例中):
myBoo = !myBoo
Run Code Online (Sandbox Code Playgroud)
要使用int执行相同的操作,我需要使用if语句进行检查:
if (val >= 0)
{
val = val*-1
}
else
{
val = Math.abs(val);
}
Run Code Online (Sandbox Code Playgroud)
有没有更直接的方法来做到这一点?
提前致谢