찾다

 >  Q&A  >  본문

java - int占4字节,一数占一字符,为什么int能表示5位以上的数字?

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

高洛峰高洛峰2802일 전1653

모든 응답(16)나는 대답할 것이다

  • 怪我咯

    怪我咯2017-04-18 09:28:53

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

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-18 09:28:53

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

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:28:53

    컴퓨터가 실제로 저장하는 것은 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는 실제로 문자열입니다.

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-18 09:28:53

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

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:28:53

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

    회신하다
    0
  • 黄舟

    黄舟2017-04-18 09:28:53

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

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-18 09:28:53

    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

    회신하다
    0
  • 黄舟

    黄舟2017-04-18 09:28:53

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

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-18 09:28:53

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

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:28:53

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

    회신하다
    0
  • 취소회신하다