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

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

高洛峰
高洛峰

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

membalas semua(16)
刘奇

Kaedah perwakilan aksara dan nilai berangka adalah berbeza Nombor dalam kod ASCII bukan nilai berangka, tetapi aksara diwakili oleh pengekodan Oleh itu, setiap aksara berangka menduduki 7 bit (kod ASCII lanjutan menduduki 8 bit). . Sebagai contoh, 12, dinyatakan sebagai 0110001 0110010 dalam kod ASCII (ia mewakili rentetan yang terdiri daripada satu atau dua aksara angka, dan tidak mempunyai maksud saiz dua belas), dan dinyatakan sebagai 00000000 00000000 00000000000000 yang Mewakili integer dengan nilai dua belas Dua nombor satu dan dua tidak boleh dibahagikan. . Ringkasnya, kaedah mewakili nilai berangka dan aksara dalam komputer adalah berbeza, dan int tidak diwakili oleh kod ascii

左手右手慢动作

ASCII mentakrifkan ungkapan aksara, bukan ungkapan nombor Cara komputer menyimpan nombor dan rentetan adalah berbeza.

巴扎黑

Apa yang disimpan oleh komputer adalah binari A bait mempunyai 8 bit. Nilai maksimum boleh dinyatakan ialah 11111111 32 bit Nilai maksimum yang boleh dinyatakan ialah 2 hingga ke-32 kuasa -1 Anda akan faham jika anda memahami prinsip-prinsip mikrokomputer. Pada masa yang sama, kerana bit pertama biasanya bit tanda, menunjukkan positif dan negatif, 0 adalah positif dan 1 adalah negatif, jadi nombor yang ditandatangani ialah 2 hingga kuasa ke-31 -1. Panjang perkataan int, long, double, dsb. ialah konvensyen pengkompil Contohnya, int mesin 16-bit awal ialah 16 bit, dan nilai maksimum ialah 65535. Dalam versi VS terkini, int ialah 4. bait dan 32 bit.
Saya baru terlepas pengekodan ASCII menduduki satu aksara, iaitu 8 bit Anda akan faham jika anda melihat pada jadual 4 bit tinggi dan 4 bit rendah membentuk jadual kepada 256 aksara. ASCII sebenarnya adalah rentetan.

刘奇

Rasanya seperti dua perkara. Had yang int menduduki 4 bait boleh memberi anda ialah nilai maksimum yang boleh dicapai oleh int. AscII mengatakan bahawa ruang yang diduduki oleh nombor ialah satu bait, yang sepatutnya menjadi ruang fizikal dan berapa banyak ruang yang didudukinya. Secara teorinya, ruang ini boleh menjadi tidak terhingga besar, selagi cakera keras cukup, ia boleh menjadi tidak terhingga panjang. 4 bait int merujuk kepada ruang yang diduduki oleh nilai yang diisytiharkan Nilai yang diisytiharkan akan melimpah apabila ia mencapai had atas dan bawah tertentu (tambah atau tolak 2 hingga kuasa ke-31). Tidak kira betapa besar cakera keras anda, sekatan ini tidak akan berubah pada mesin yang sama. Ini adalah bagaimana saya memahaminya. Saya tertanya-tanya jika anda boleh memahaminya.

伊谢尔伦

Nombor dalam

ascii merujuk kepada '1', iaitu sudut watak. Sudut adalah berbeza dan mereka tidak boleh dikelirukan sama sekali.

黄舟

ASCII ialah spesifikasi pengekodan, dan int ialah jenis storan dalam ingatan. Sama seperti kereta mempunyai maksimum 5 orang, polis trafik akan menghukum anda jika terdapat lebih ramai orang Ini adalah int, dan siapa di dalamnya, apakah namanya, dan apakah nombor ID ini dikawal oleh ASCII kod.

刘奇

int = 4 bait (Byte), bukan 4 bit (bit)

1 bait = 8 bit

1 bit = 0 atau 1

1 bait = 0-255


Dan sistem perpuluhan dalam kehidupan sebenar:
Satu digit perpuluhan = 0-9
Penuh 10s kepada 1
Begitu juga dengan sistem binari
1bit = 0-1
Penuh 1s menjadi 1
Perwakilan binari int 0 ialah: 00000000000000000000000000000
Hasil +1 ialah: 00000000000000000000000000000000000000000000000 000000 Hasil penambahan 0000000000000000010
dan kemudian +1 ialah: 00000000000000000000000000000100
dan kemudian +1000: 0000000000000000000001111101011

黄舟

Satu, dua dan dua belas adalah dua konsep yang berbeza. 1 bait ialah nombor binari 8-bit, jadi int boleh mewakili nombor dalam 2 hingga kuasa ke-31. Sebagai contoh, 1212, jika ia disimpan dalam ASCII, ia adalah satu dua satu dua, jika ia disimpan dalam int, ia adalah seribu dua ratus dua belas

刘奇

int menyimpan nombor, bukan char

伊谢尔伦

Satu bait ialah 8 bit
4 bait ialah 32 bit
Jadi int ialah 32 bit
Tetapi int ialah integer bertanda,
Nombor maksimum yang boleh diwakili ialah 31 1s
Iaitu, 2 hingga kuasa ke-31 - 1

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