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

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

高洛峰
高洛峰

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

모든 응답(16)
刘奇

문자와 숫자 값의 표현 방식이 다릅니다. ASCII 코드의 숫자는 숫자 값이 아니라 인코딩으로 표현되는 문자입니다. 따라서 각 숫자 문자는 7비트를 차지합니다(확장 ASCII 코드는 8비트를 차지합니다). . 예를 들어 12는 ASCII 코드로 0110001 0110010(하나 또는 두 개의 숫자로 구성된 문자열을 나타내며, 12의 크기의 의미는 없음)으로 표현되고, int로 00000000 00000000 00000000 00001010으로 표현되며, 이는 12라는 값을 갖는 정수를 나타냅니다. 1과 2는 나눌 수 없습니다. . 즉, 컴퓨터에서 숫자와 문자를 표현하는 방법이 다르고, int는 아스키코드로 표현되지 않습니다

左手右手慢动作

ASCII는 숫자의 표현이 아닌 문자의 표현을 정의합니다. 컴퓨터가 숫자와 문자열을 저장하는 방식은 다릅니다.

巴扎黑

컴퓨터가 실제로 저장하는 것은 8비트입니다. 표현할 수 있는 최대값은 11111111입니다. 마찬가지로 4바이트도 마찬가지입니다. 32비트. 표현할 수 있는 최대값은 2의 32승 -1이다. 마이크로컴퓨터의 원리를 이해하면 알 수 있다. 동시에 첫 번째 비트는 일반적으로 양수와 음수를 나타내는 부호 비트이므로 0은 양수이고 1은 음수이므로 부호 있는 숫자는 2의 31승 -1입니다. int, long, double 등의 단어 길이는 컴파일러의 관례입니다. 예를 들어 초기 16비트 시스템의 int는 16비트이고 최대값은 65535입니다. 최신 VS 버전에서는 int가 4입니다. 바이트 및 32비트.
ASCII 인코딩을 놓쳤네요. ASCII 코드는 한 문자, 즉 8비트를 차지합니다. 표를 보면 알 수 있을 것입니다. 최대 256자. ASCII는 실제로 문자열입니다.

刘奇

두 가지 느낌이 듭니다. int가 4바이트를 차지한다는 제한은 int가 도달할 수 있는 최대값입니다. AscII에서는 숫자가 차지하는 공간이 1바이트라고 말합니다. 이는 물리적 공간과 그것이 차지하는 공간의 양이어야 합니다. 이론적으로 이 공간은 무한히 커질 수 있으며, 하드 디스크가 충분하다면 무한히 길어질 수 있습니다. int의 4바이트는 선언된 값이 차지하는 공간을 의미합니다. 선언된 값은 특정 상한 및 하한(2의 31제곱)에 도달하면 오버플로됩니다. 하드 드라이브의 크기에 관계없이 동일한 시스템에서는 이 제한 사항이 변경되지 않습니다. 이렇게 이해가 되시는지 궁금합니다.

伊谢尔伦

ascii에 있는 숫자는 캐릭터의 각도인 '1'을 의미합니다. 각도가 달라서 전혀 혼동될 수 없습니다.

黄舟

ASCII는 인코딩 사양이고 int는 메모리의 저장 유형입니다. 자동차에 최대 5명이 탑승하는 것과 마찬가지로 5명 이상이면 교통경찰이 처벌합니다. 이것은 int이고, 이름은 무엇이며, ID 번호는 무엇입니까? 이것은 ASCII 코드로 규제됩니다. .

刘奇

int = 4비트(bit)가 아닌 4바이트(Byte)

1바이트 = 8비트

1비트 = 0 또는 1

1바이트 = 0-255


실생활의 십진법은 다음과 같습니다.
십진수 한 자리 = 0-9
10을 1로 만듭니다
이진법도 마찬가지입니다
1bit = 0-1
전체 1을 1로
int 0의 이진 표현: 000000000000000000000000000000
+1의 결과: 000000000000000000000000000001
+1의 결과: 000000000 0000 0000000000000000010
을 더한 뒤 +1을 더한 결과 는: 000000000000000000000000000000100
이고 +1000: 0000000000000000000001111101011

黄舟

하나, 둘, 열두는 서로 다른 개념입니다. 1바이트는 8비트 이진수이므로 int는 2의 31승 이내의 숫자를 나타낼 수 있습니다. 예를 들어 1212, ASCII로 저장하면 일이이백이, int로 저장하면 천이백십이가 됩니다

刘奇

int는 문자가 아닌 숫자를 저장합니다

伊谢尔伦

1바이트는 8비트입니다
4바이트는 32비트입니다
int는 32비트입니다
그러나 int는 부호 있는 정수입니다.
표현할 수 있는 최대 수는 311s입니다
즉, 2의 31승 - 1

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿