我只是好奇是否有一个理由为了在二进制中表示-1,使用二进制补码:翻转位并加1?
-1表示为11111111(二进制补码)而不是(对我来说更直观)10000001,它是二进制1,第一位作为负标志.
免责声明:我不依赖二进制算术来完成我的工作!
math binary negative-number internal-representation twos-complement
我有一个Java方法,我在其中总结一组数字.但是,我希望任何负面数字都被视为正数.所以(1)+(2)+(1)+( - 1)应该等于5.
我确信有这么简单的方法 - 我只是不知道如何.
在java时你这样做
a % b
如果a是负数,它将返回负结果,而不是像它应该那样回绕到b.解决这个问题的最佳方法是什么?我能想到的唯一方法就是
a < 0 ? b + a : a % b
我知道整数值0和-0基本相同.但是,我想知道是否有可能区分它们.
例如,我如何知道是否分配了变量-0?
bool IsNegative(int num)
{
    // How ?
}
int num = -0;
int additinon = 5;
num += (IsNegative(num)) ? -addition : addition;
-0保存在内存中的值与完全相同0吗?
我做模数错了吗?因为在Java -13 % 64中应该评估,-13但我得到51.
我正在学习C++中的函数重载,并遇到了这个问题:
void display(int a)
{
    cout << "int" << endl;
}
void display(unsigned a)
{
    cout << "unsigned" << endl;
}
int main()
{
    int i = -2147483648;
    cout << i << endl; //will display -2147483648
    display(-2147483648);
}
根据我的理解,该int范围内给出的任何值(在我的情况下int是4个字节)都将调用,display(int)并且该范围之外的任何值都将是不明确的(因为编译器无法决定调用哪个函数).int除了最小值之外,它对整个值范围有效,即-2147483648编译因错误而失败
超载的召唤
display(long int)是模棱两可的
但是将相同的值与a int打印并给出值2147483648.我对这种行为感到困惑.
为什么只有在传递最负数时才会观察到这种行为?(该行为是相同的,如果一个short使用具有-32768-事实上,在负数和正数具有相同的二进制表示任何情况下)
使用的编译器:g ++(GCC)4.8.5
在Javascript中,我似乎找不到将负数设置为零的方法?
-90变为0 
-45变为0 
0变为0 
90变为90
有什么相似的吗?我只是四舍五入的数字.
我想检查一个数字是否为负数.我正在寻找最简单的方法,所以一个预定义的javascript函数将是最好的,但我还没有找到任何东西,这是我到目前为止,但我不认为这是一个好方法:
  function negative(number) { 
        if (number.match(/^-\d+$/)) {
            return true;
        } else {
            return false;
        }
   }
该程序应该打印出来的元素array,但是当它运行时,没有显示输出.
#include <stdio.h>
#define TOTAL_ELEMENTS  (sizeof(array) / sizeof(array[0]))
int array[] = { 23, 34, 12, 17, 204, 99, 16 };
int main() {
    int d;
    for (d = -1; d <= (TOTAL_ELEMENTS - 2); d++) 
        printf("%d\n", array[d + 1]);
    return 0;
}
为什么这个程序没有显示任何输出?
negative-number ×10
java ×3
math ×3
modulo ×3
c++ ×2
integer ×2
javascript ×2
binary ×1
c ×1
int ×1
loops ×1
overloading ×1
python ×1
sizeof ×1
zero ×1