16 回答

TA貢獻1779條經(jīng)驗 獲得超6個贊
一個字節(jié)是8位
4個字節(jié)就是32位
所以int是32位
但int是有符號整數(shù),
可以表示的最大數(shù)字是31個1
也就是2的31次方-1

TA貢獻2065條經(jīng)驗 獲得超14個贊
..............
‘1’ != 1
‘2’ != 2
‘3’ != 3
(1)10 = (1)2
(2)10 = (10)2
(3)10 = (11)2
char占一字節(jié)
32位int占四字節(jié)

TA貢獻1798條經(jīng)驗 獲得超3個贊
‘1’【char】和1【int】是不一樣的
因為他們在二進制中的表示的方法不同
‘1’ =》00110001【char是一字節(jié),八位,會有特殊意義,例如可以代表符號什么的】
1 =》00000000000000000000000000000001【int是4字節(jié),32位,只用于代表數(shù)字】

TA貢獻1839條經(jīng)驗 獲得超15個贊
和樓上的想法基本差不多。
首先這是兩個概念,在我看來,一個表示存儲,而另一個表示展示。
例如:我們都知道boolean類型,同樣的值,在某些情況下,可以表示為1、0,也可以表示為true、false。
樓主的意識誤區(qū)在于概念中的錯誤。
首先我們來分析下樓主的邏輯,再找出其中的錯誤:
∵ ① int = 4 字節(jié); ② Ascll里,1數(shù)字 = 1字節(jié) ∴ int = 4 數(shù)字 從而推導出 int 最多儲存4位數(shù)字。
我們可以看出,條件②是錯誤,所以得到的答案是錯誤的
分析:
1數(shù)字 = 1字節(jié),那么1字節(jié) = 1 數(shù)字么?
我們可以說,在某些情況下是相等的, 就是在 256 進制下,而樓主卻用10進制來套256進制,所以錯了
為什么是256進制?是因為1字節(jié)可以表示0-255之間的任意數(shù)值,所以 int 最多存儲4位 256位進制的數(shù)字
綜上所述,樓主的話在某些情況下是對的,但需要加一個前提,就是 256 進制的數(shù)字

TA貢獻1836條經(jīng)驗 獲得超5個贊
ascii里面是用數(shù)字表達字符串的,而數(shù)字存到內(nèi)存中是在ascii的前面一個級別,你可以簡單的這樣理解:
內(nèi)存(0和1)=>數(shù)字(通常也可以直接為其他進制)=>漢字或者字母(各種進制所表達的最終展示)
他們不是一個級別的概念。

TA貢獻1820條經(jīng)驗 獲得超3個贊
簡單的說就是:
前者總共有32個格子,每個格子可以有兩種情況,
后者總共只有4個格子,每個格子有十種情況(0到9),
一個是2的32次方,一個是10的4次方,你把底數(shù)和冪數(shù)都換了,結果肯定不一樣。
前者的其實也就是計算機里的二進制,后者的思維變成了我們所日常使用的十進制。
具體點說就是:
ascii碼中包含256個字符,包括數(shù)字和英文字母、符號等,數(shù)字只占其中的10個(0到9)。
那么為什么ascii可以表示那么多字符呢?
你應該知道的(不知道就沒辦法了),一個ascii碼占一個字節(jié),而一個字節(jié)有八個比特位。
每個比特位只有兩種情況,0和1,那么8個比特位組合起來,就應該是:
2 X 2 X 2 X 2 X 2 X 2 X 2 X 2 = 2的8次方 = 256
也就是8個比特位總共能表示256種情況,如果把這256種情況分別全用來表示數(shù)字的話,就可以表示0到255這256個數(shù)字。
好,這個如果你理解了,那么理解int就容易了,int有4個字節(jié),這是前提你也知道。
前面解釋了,一個字節(jié)可以表示256種情況,那么4個字節(jié)按照前面的算法就為:
256 X 256 X 256 X 256 = 2的8次方 X 2的8次方 X 2的8次方 X 2的8次方 = 4 294 967 296
也就是4個字節(jié)可以表示 4 294 967 296 種情況,如果一種情況用來表示一個數(shù)字,那么就可以用來表示 0到4 294 967 295 了。
你前后屬于偷換概念了,你后面把問題變成了:
10 10 10 * 10 = 10 的4次方 = 10000
結果當然只能表示4位數(shù)了。

TA貢獻1772條經(jīng)驗 獲得超5個贊
字符和數(shù)值的表示方法是不同的,ascii碼里面的數(shù)字不是數(shù)值,是用編碼表示的字符,因此每個數(shù)字字符占7位(擴充的ascii碼占8位)。比如12,,用ascii碼表示為0110001 0110010(它表示的是一二兩個數(shù)字字符組成的字符串,并沒有十二的大小的涵義),,而用int則表示為00000000 00000000 00000000 00001010,它表示數(shù)值為十二的整數(shù),一二兩個數(shù)是不可分割的。??傊當?shù)值與字符在計算機內(nèi)表示的方法是不同的,,int不是用ascii碼表示的

TA貢獻1852條經(jīng)驗 獲得超1個贊
計算機真正存儲的都是二進制,一個字節(jié)有8個比特位,用二進制表示,最大可表示11111111,即2的8次方-1,同理4個字節(jié)有32個比特位,最大可表示2的32次方-1,你去了解一下微機原理就懂了。同時由于第一位通常是符號位,表示正負,0為正,1為負,所以帶符號數(shù)就是2的31次方-1。關于int,long,double等的字長是編譯器的約定,比如早期16位機的int就是16個bit,最大值是65535,到了最近的VS版本,int都是4個字節(jié)32個bit位了。
剛才漏掉了ASCII編碼的事情,一個ASCII碼是占一個字符即8個bit, 你看看那個表就明白了,高4位和低四位來構成一張表,所以最多可以表示256個字符。ASCII實際上是字符串來的。

TA貢獻1853條經(jīng)驗 獲得超6個贊
int = 4字節(jié)(Byte),而不是4比特位(bit)
1字節(jié) = 8比特位(bit)
1個比特位 = 0或者1
1個字節(jié) = 0-255
而現(xiàn)實生活中的十進制:
一位十進制 = 0-9
滿10進1
二進制也是一樣的
1bit = 0-1
滿1進1
一個int 0 的二進制是: 00000000000000000000000000000000
+1的結果是啊: 00000000000000000000000000000001
再+1的結果是: 00000000000000000000000000000010
再+1的結果是: 00000000000000000000000000000100
再+1000: 00000000000000000000001111101011

TA貢獻1817條經(jīng)驗 獲得超6個贊
一二和十二是兩個不同的概念。1個字節(jié)是8位二進制數(shù),所以int可以表示2的31次方內(nèi)的數(shù)。比如1212,如果是按照ASCII來存儲,就是一二一二,如果是int存儲,是一千二百一十二
添加回答
舉報