What's the relationship between bitwise capacity and bit capacity?
简言之,在C 5.0中C主题的转换(第2章)中,作者说:
...Conversions can be either implicit or explicit: implicit conversions happen automatically, and explicit conversions require a cast. In the following example, we implicitly convert an int to long type (which has twice the bitwise capacity of an int)...
例如:
1 2 3 | int x = 12345; // int is a 32-bit integer long y = x; // Implicit conversion to 64-bit integer short z = (short)x; // Explicit conversion to 16-bit integer |
位容量和位容量之间有关系吗?或者,作者对位能力的观点是什么?
我认为,他想区分"位容量"和"数字容量"。
在本例中,数据类型的按位容量不同:int有32个,long 64个,short 16个。在这种情况下,隐式地转换为具有较高容量的数据类型,显式地转换为具有较低位容量的数据类型。
另一方面,也有类似于"数字容量",其中int和uint共享相同的位数(它们具有相同的"按位容量"),但在您可以存储的值方面仍然不完全兼容(uint不支持负值)。
我认为他们的意思是"能力,相对于比特"。如果省略了"按位"部分,那么可以很容易地将其解释为"此类型的值比其他类型的值多两倍",这是错误的:它的值比其他类型的值多两倍多。它可以容纳两倍的位,从而以指数形式增加值的数量。
这是同一件事。它只是意味着你有两倍多的比特来表示你的值,这意味着你可以存储更大的数字。因此,数字容量与位容量相关联,因为位越多,数字容量越高。
使用64位数据类型,可以使用64位二进制数字表示值。