目标C Int到2';s补码转换

目标C Int到2';s补码转换,c,binary,integer,C,Binary,Integer,如果是负数,我想把16位整数转换成2的补码 目前,我正在使用1的补码运算符。我想我可以用它,然后在二进制值中加1,把它转换成2的补码。但是,我无法执行x=~a+1,因为这只会产生整数值+1 如果我的过程是正确的,我如何将1添加到二进制整数中?如果不是,在Objective-C中,将16位整数转换为2的补码最合适的方法是什么?2的补码是有符号数的一种表示,而不是值或运算。在几乎所有现代计算机上,二的补码是有符号整数的标准表示形式。(它是标准中允许的三种整数表示形式之一。) 因此,如果你有任何带符号

如果是负数,我想把16位整数转换成2的补码

目前,我正在使用1的补码运算符。我想我可以用它,然后在二进制值中加1,把它转换成2的补码。但是,我无法执行x=~a+1,因为这只会产生整数值+1


如果我的过程是正确的,我如何将1添加到二进制整数中?如果不是,在Objective-C中,将16位整数转换为2的补码最合适的方法是什么?

2的补码是有符号数的一种表示,而不是值或运算。在几乎所有现代计算机上,二的补码是有符号整数的标准表示形式。(它是标准中允许的三种整数表示形式之一。)

因此,如果你有任何带符号的整数,它用2的补码表示。我想你想要一个正数的二元补码。如果您的机器对有符号的数字使用2的补码,那么这就是负值

int positiveValue = 5; 
int twosComplement = -positiveValue;