java - int占4字节,一数占一字符,为什么int能表示5位以上的数字?
高洛峰
高洛峰 2017-04-18 09:26:53
0
16
1682

我知道这个问题~有点无厘头和傻乎乎。还是想请人解答一下~
----------可能目前脑子正处于抽风阶段----------
首先,我知道int占4个字节,包含正负2的31次方内的数字,也就是基本可以表示10位数字。
那么根据Ascll里,一个数字占用一个字节的规则来思考。
我让int按照这种规则来储存数字,是不是应该只能储存最多4位数字???
还请明白人~指出我这样思考的错误点在哪里?或者告知正确的解答方式~。

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

membalas semua(16)
Peter_Zhu

............
‘1’! = 1
‘2’! = 2
‘3’! = 3
(1)10 = (1)2
(2)10 = (10)2
(3)10 = (11)2
char menduduki satu bait
32 Bit int menduduki empat bait

小葫芦

'1'[char] dan 1[int] adalah berbeza
Kerana ia dinyatakan dalam cara yang berbeza dalam binari
'1' =>00110001[char ialah satu bait, lapan bit, Ia akan mempunyai khas bermakna, sebagai contoh, ia boleh mewakili simbol atau sesuatu]
1 =》00000000000000000000000000000001 [int ialah 4 bait, 32 bit, hanya digunakan untuk mewakili nombor]

黄舟

Pada asasnya serupa dengan idea di atas.
Pertama sekali, ini adalah dua konsep Pada pendapat saya, satu bermaksud penyimpanan dan satu lagi bermaksud paparan.
Contohnya: Kita semua tahu jenis boolean Nilai yang sama, dalam beberapa kes, boleh dinyatakan sebagai 1, 0, atau benar atau palsu.

salah tanggapan poster terletak pada ralat konsep.
Pertama, mari analisa logik poster dan ketahui ralatnya:
∵ ① int = 4 bait ② Dalam Ascll, 1 nombor = 1 bait ∴ int = 4 nombor, dengan itu menyimpulkan bahawa int ialah yang paling banyak Kedai 4; digit.

Kita dapat lihat keadaan ② itu salah, jadi jawapan yang diperoleh adalah salah
Analisis:
1 nombor = 1 bait, kemudian 1 bait = 1 nombor?
Kita boleh mengatakan bahawa mereka adalah sama dalam beberapa kes, iaitu, dalam asas 256, tetapi poster menggunakan asas 10 untuk menutup asas 256, jadi ia adalah salah
Mengapa ia berada dalam asas 256? Kerana 1 bait boleh mewakili sebarang nilai antara 0-255, jadi int boleh menyimpan sehingga 4 digit nombor 256 digit

Ringkasnya, apa yang dikatakan oleh poster adalah betul dalam beberapa kes, tetapi prasyarat perlu ditambah, iaitu nombor 256 asas

大家讲道理

ASCII menggunakan nombor untuk menyatakan rentetan, dan nombor disimpan dalam ingatan pada tahap sebelum ASCII Anda boleh memahaminya seperti ini:
Memori (0 dan 1) => Nombor (biasanya juga Boleh terus menjadi asas lain. ) => Aksara atau huruf Cina (paparan akhir yang dinyatakan oleh pelbagai asas)

Mereka tidak berada pada tahap yang sama.

大家讲道理

Ringkasnya:
Yang pertama mempunyai sejumlah 32 grid, setiap grid boleh mempunyai dua situasi,
Yang terakhir hanya mempunyai jumlah 4 grid dan setiap grid mempunyai sepuluh situasi (0 hingga 9 ) ,
Satu 2 dinaikkan ke kuasa ke-32, dan satu lagi 10 dinaikkan ke kuasa ke-4 Jika anda menukar kedua-dua asas dan kuasa, hasilnya pasti berbeza.
Yang pertama sebenarnya adalah sistem binari dalam komputer, manakala pemikiran yang kedua menjadi sistem perpuluhan yang kita gunakan setiap hari.

Untuk lebih spesifik:
Kod ascii mengandungi 256 aksara, termasuk nombor, huruf Inggeris, simbol, dll. Nombor hanya merangkumi 10 daripadanya (0 hingga 9).
Jadi mengapa ascii boleh mewakili begitu banyak aksara?
Anda sepatutnya tahu (jika anda tidak tahu, anda tidak boleh menahannya), kod ASCII menduduki satu bait dan bait mempunyai lapan bit.
Setiap bit hanya mempunyai dua situasi, 0 dan 1, jadi gabungan 8 bit hendaklah:
2 X 2 X 2 X 2 X 2 X 2 X 2 X 2 = 8 daripada 2 Kuasa = 256
Iaitu, 8 bit boleh mewakili sejumlah 256 situasi Jika semua 256 situasi digunakan untuk mewakili nombor, 256 nombor dari 0 hingga 255 boleh diwakili.

Baiklah, jika anda memahami ini, maka ia akan mudah difahami int mempunyai 4 bait Ini adalah prasyarat yang anda juga tahu.
Seperti yang dijelaskan sebelum ini, satu bait boleh mewakili 256 situasi, jadi 4 bait mengikut algoritma sebelumnya ialah:
256 X 256 X 256 X 256 = 2 kepada kuasa ke-8 X 2 kepada kuasa ke-8 X 2 kepada Kuasa ke-8 Mewakili 0 hingga 4 294 967 295.

Anda secara rahsia telah menukar konsep sebelum dan selepas Anda kemudian menukar soalan kepada:

10
10 10 * 10 = 10 kepada kuasa ke-4 = 10000 Sudah tentu hasilnya boleh. hanya mewakili 4 digit.

巴扎黑

Rasanya soalan bodoh. . . ,,Bait dan bilangan digit yang disimpan pastinya bukan dua konsep yang berbeza

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan