按位不在C中

时间:2016-08-19 15:34:56

标签: c bitwise-operators

我正在学习C并且想知道为什么以下示例中的按位NOT var buildIt = function(row){ var a = [] var input for(var i = 0; i < row; i++){ input = prompt('Input: '); a[i] = input.split(''); } return a; } buildIt(3); 打印-1,:

~

1 个答案:

答案 0 :(得分:4)

%d格式说明符用于printf,您告诉它将unsigned int值打印为int

由于您的机器很可能使用2的整数补码表示,因此将所有位设置为1的值解释为-1。

另一方面,如果您使用%u格式说明符,则会将值打印为无符号。根据{{​​1}}的大小,此值将为:

  • 65535(16位)
  • 4294967295(32位)
  • 18446744073709551615(64位)