簡體   English   中英

如何計算數據類型的范圍,例如 int

[英]How to calculate range of data type eg int

我想知道為什么在公式中計算任何數據類型的范圍ie2 ^(n-1),為什么它是n-1,n是給定數據類型占用的位數

假設類型是無符號的,最大值為(2 n )-1,因為有2 n 個值,其中一個為零。
2 (n-1)是單獨的第 n 位的值 - 位 1 是 2 0 ,位 2 是 2 1 ,依此類推。

這對於任何數字基數都是相同的 - 在十進制系統中,n 位可以表示 10 n 個不同的值,最大值為 10 n -1,第 n 位是“值”10 (n-1)

例如,小數點后三位的最大數是 999(即 10 3 -1),小數點后第三位是“百位”,即 10 2

2^(n-1)不正確,數據類型表示的最大(無符號)數為:

max = 2^n - 1

因此對於 8 位數據類型,最大表示值為255

2^n告訴您表示的數字數量(8 位示例為256 ),但因為您想包含0 ,所以范圍是0 to 255 ,而不是1 to 256

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM