서명되지 않은 INT의 C 언어 / 우리는 이해하고 구별하는 방법 결국 숯불 ????

사설은 : 여기에 내가 배우고 자신의 연구 노트를 공유하고, 자신의 성장 궤도를 기록하고있는 사람이 도움을 필요로 할 수 싶습니다 왕 로그 성장, 평범한 대학생입니다, 일반적으로 블로그는 주로 중 일부를 대상으로 연구 노트는 (시스템은, 마인드 매핑에 포함됩니다 열 같은 나는 전에 - 과학 데이터 소개 등), 프로젝트 전투 노트, 기술의 일부 자신의 생각의 일부를 탐구한다. 모든 의견에 우려의 요점을 관심을 환영합니다 나는 조심스럽게보고 싶습니다. 질문이 교환을하시기 바랍니다, 나는 더 나은 환경 CSDN을 작성, 당신을 돕기 위해 최선을 다할 것입니다.



1. 사전 지식

원래 코드, 안티 코드 보완


여기에 중앙 평야의 컴퓨터 코드, 안티 코드에 공간 제한의 지식을 보완, 여기에 대한 간략한 소개는, 더 자세한 설명은 분류하는 나에게 이일을 보내드립니다


원래 코드 : 원래의 코드 표현 컴퓨터 간단한 형태의 번호 로 이루어지는 부호 비트 (0 1 네가티브 포지티브)에 의해 비트 값 (절대 값)

  • 그러나 것 이 두 0 : 0 ( 0 0000 000) 및 -0 ( 1 0000 000)

안티 코드 : (교환 0과 1) 부호 비트의 비트를 제외하고 원래 코드 만 부정적인 감각 , 긍정적 또는 방지 코드

예를 들면 :

원래 코드 반전
0 000 1111 0 000 1111
1 000 1,010 1 111 0101

보완 : 방지 코드 플러스 1, 또는 유일한 부정적인 의미에서 긍정적를하거나 자신을 보완합니다. 부정적인 컴퓨터의 형태로 발현을 보완
등 (-5 예를 들어)로 :

원래의 코드 (비트 + 부호 비트 값) (부호 비트의 비트 제외) 반전 보체 (+1 반전)
1 0000000 00000000 00000000 00000101 1 1,111,111 11,111,111 11,111,111 11,111,010 1 1,111,111 11,111,111 11,111,111 11,111,011

2. 서명 및 서명

이 서명과 큰 차이점을 서명되지 않은

  • 원래의 코드로 표현되는 컴퓨터에서 서명되지 않은 번호, 서명 숫자 보완으로 표시

  • 그들의 이름은 기호 여부에 차이가 거짓말을 제안처럼

    • 부호 비트 수는 모든 값을 나타 내기 위해 사용되는
    • 부호 비트 (MSB 0 1 네가티브 포지티브) 및 값의 비트가 전술 한 바와 같이 원래의 코드 심볼들 및 안티 보완 코드가

그들은 서로 다른의 범위를 나타냅니다

  • * 상기 n 비트의 부호 번호는, 모든 비트가 그 범위를 직접하므로, 값을 나타내는 데 사용되므로 0-2 N-. 1) ** (* 2 개의 N 고유 번호)
  • 최상위 비트는 양과 음의 값을 나타 내기 위해 사용되기 때문에, 부호 번호,이를 감소 할 최대 값으로 표현 될 수 있지만, 음의 축 방향으로 연장 될

으로는 다음과 같습니다 :

서명되지 않은 서명
단일 바이트 (8 비트) 0-255 -128 ~ 127
바이트 (16 비트) 0 ~ 65535 -32768 ~ 32767
n 비트 0 ~ 2 ^ N - 1 - 2 ^ N ~ 2 ^ N - 1
  • 사실, 당신이 그것을 느낄 수, 숫자 같은 수에 서명하고 서명 한 자신의 수를 표현하는 것은 일치 할 수
    • 그러나 공을 보완 = -0 따라서, -0이 위치 때문에 원래부터이 지역에서 더 부정적 -0 ~ -127, -128 -1도 될 것을 밖으로 비울 수 있습니다 (128), 및 양의 방향이 (127)의 수가 128이고 0 또는이 둘은 대칭이다. (-0 자신의 보완 쓰러 시도 할 수 있습니다)

      원래 코드 반전 보어
      1 000 0000 1 111 1,111 1 000 0000
    • 또한 이해 될 수있다 :

      • 우리의 생각, -1 -128에, -1, 가장 큰, 그래서 -1이 컨텍스트에서 가장 큰 음의 값이며, 1 (111) 1111
      • 1111의 값의 우리 11111111-1 값 1110이 (자신의 보완이 원래의 코드로 다시 푸시 할 수에서)
      • 작은 음의 값으로 -128 1000 0000 다운 같은 절단되어 다운 갖는다
    • 이러한 음의 방향은 -1 -128, 동일한 양의 방향으로

    • 참고 : C 언어 시리즈 (b)에 서명하고 서명되지 않은 댓글 )

이진 (1 바이트) 진수 값
1111 1111 -1
1111 1110 -2
1111 1101 -삼
......... .........
1000 0001 -127
1000 0000 -128

3. 서명 문자 및 부호 문자

  • 첫째, 우리는 플러그의 유형을 알고 있어야합니다 ** C 언어에서 문자는 **의 바이트 (8)입니다
  • 우리가 관심을 지불하는 경우 둘째, C 언어로, 우리는 발견 할 수 있습니다 실제로 문자 아스키 코드를 저장 스토리지의 문자 문자 유형을 그래서 가끔 우리는 직접 빼기 문자와 정수에 대한 것도 가능하다.
 	  int main(void)
                {
                    char ch = 'c';
                    printf("%d",ch);//打印结果是99,为'c'的ancii码
                    printf("%c",ch+5);//打印结果为h
                }
  • 그러나 C 언어뿐만 아니라에 서명 숯불없는이 일을 걱정
    , 실제로 C 언어 부호없는 문자가 부호가 동일 수의 평균으로, 0 ~ 255의 범위에서 표현 될 수있다, 매우 간단
    평균 문자 동안 유형은 동일한 수의 심볼이 갖는 -128 내지 127의 범위에 의해 표현 될 수있다

  • 마지막으로, 범위와 관련하여 여기에 표현 일반적으로 단지 운영시 사실과 정수 주목해야한다 , 그러나 우리는 문자를 표시 할 필요가 없습니다 때 너무 우려

4. 참조 :

  • 텍스트 하이퍼 링크를 참조하십시오

이 메시지를 남겨, 에이미가 함께 성장처럼 여기에 본 적이, 당신 형제 자매, 이모와 삼촌을 귀하의 관심이 나의 가장 큰 지원하고, 왕에게 메모 오프 포인트를 제공합니다.


내가 대답에 최선을 다하겠습니다 -이 더 부정확 또는 누락의 내용보다, 또는 당신이 더 나은 아이디어가 있으면 바로 알려주세요 아래 메시지를 남겨.

게시 19 개 원래 기사 · 87원 찬양 · 전망 4717

추천

출처blog.csdn.net/weixin_45761327/article/details/105300787