C 언어 기본 사항 - 데이터 유형

            C 언어 기본 사항 - 데이터 유형

                                  저자 : 음 Zhengjie

저작권 : 오리지널 작품은, 다시 인쇄를 거부! 그렇지 않으면 책임을지지 않습니다.

 

 

 

A. 상수와 변수

1> 키워드

    32 개 C 키워드의 총. 
1 > 데이터 형식 키 (12)     문자, 짧은, INT, 긴, 플로트, 더블, 서명, 서명, 구조체, 연합, 열거, viod
2 > . 키워드 제어문 (12)
    IF는 다른, 스위치 , 케이스, 기본, 할 들어, 동안, BREAK, GOTO, 수익을 contiue
. 3 > . 키워드 메모리 (5) 입력
    자동, 통근, 등록, 정적을 const
. 4 >. 다른 카테고리 (3)
    sizeof의를, 타입 정의, 휘발성

2> 데이터 유형

    데이터 유형의 역할 : 컴파일러 예산 개체 (변수) 메모리 공간을 할당. 

1> 정의 데이터 형
  변수의 정의 :
    데이터 입력 변수 이름 [라고도 식별자, 예를 들면 : "문자 Habby;"
  변수 할당 :
    변수 이름 = 값, 예컨대 "NAME = 제이슨 음과 「
    데이터 형식 변수 같은 이름 [ID = 값 "= 10 AGE의 INT 「

. 2> 식별자 명명 규칙에
  문자, 숫자, 강조,
  (a 문자이거나 밑줄해야 첫 문자) 숫자로 시작하지;
  이름을 볼 EENOW,
  기능과 같은 반복 내의 다른 식별자 수 없습니다
  사용하지 내장 C 언어 키워드,
  식별자는 대소 문자를 구분합니다;

 

3> 상수

상수의 영향 : 
    프로그램이 실행되는 변경할 수 없습니다 값의 양, 
    상수는 일반적으로 표현식 또는 할당 문에 표시, 

몇 가지 예 : 
    정수 상수 : (100) , (200) - (100) , 0 
    실제 상수 : 3.14 , 9.18 , 1.44 , 등 
    문자 상수 : ' ' , ' B ' , ' 10 ' , ' \ N- ' 
    문자열 상수 : " 나이 " , " 123 " , " 제이슨 " 
상수 정의 : CONST

  데이터 형식 일정 이름, 
  상수 이름 값 #deifne 

참고 : 
  일정 "#deifne"에 의해 이런 방식으로 정의 된 데이터 유형과 일치하는 값에 따라 정의 된 일정을 권장합니다. 
  CONST 수정 상수 불안전 포인터에 의해 변형 될 수있다

4> 변수

변수 : 
    프로그램은 값이 변경 될 수 있으며, 실행되고 
    , 변수는 사용하기 전에 정의해야합니다, 당신은 적절한 데이터 형식 이전에 변수가 정의되어 있어야 

변수 특성 :
  컴파일시에 각각의 메모리에 할당 된 변수;
  에 의해 이름과 대응되는 메모리 액세스 어드레스;  

5> 케이스를 사용하여

[[email protected] / yinzhengjie / 코드 / day002] # 고양이 variable_definitions.c 
 / * 
@author : yinzhengjie 
블로그 : http://www.cnblogs.com/yinzhengjie의 
EMAIL : [email protected] 
* / 

#INCLUDE <STDIO.H>
 #DEFINE 파이 3.1415926 INT 본체 ( 무효 ) 
{ // 정의한 변수 INT _age = 18이다 ; 
    의 printf ( " 연령 D} = {% \ N- ' , _age); // 상수 정의 CONST의 INT의 MONTH = 12이다 ; 
    의 printf ( " 년 - 월 {}가 % d \ N- "


    
    

    
     , MONTH); 

    // 참조 사용 "#DEFINE"는 변수가 정의 
    의 printf (을 " 원주 속도 : % {F} \ N- " 은 PI) 
} 
[[email protected] / yinzhengjie / 코드 / day002] # 
[[email protected] / yinzhengjie / 코드 / day002] # 
[[email protected] / yinzhengjie / 코드 / day002] # GCC - O variable_definitions variable_definitions.c 
[[email protected] .org.cn / yinzhengjie / 코드 / day002] # 
[[email protected] / yinzhengjie / 코드 / day002] #는 ./ variable_definitions 
연령 = { 18이다 } 
{년 12} 개월 
원주 속도 : { 3.141593 } 
[[email protected] / yinzhengjie / 코드 / day002] # 
[[email protected] / yinzhengjie / 코드 / day002] #

 

II. 바이너리

    진수는 16 진수입니다 사람들이 조항을 수행 할 수있는 방법이다. 어떤 대역 -X 밴드를 들어, 동작의 수는 1에 단지 하나의 위치 (X)를 제공한다는 것을 의미한다. 모든 소수는 소수이고, 16 진수 모든 진수이며, 모든 이진 이진, 등, 즉, 모든 진수 X X 캐리.

1> 바이너리

  이진 (1)에 각 2 모든 숫자 0.1 11 + 같이 구성되어 1 = 100 . 
진수 바이너리 차례 :
    역순으로 두 가지 방법 모듈 추가 (십진수 2로 나눈 각, 나머지, 플래시백으로 분류 결과를 제거).
구체적 이진 소수점 :
    중량법 (2 승산 N 0 전원 시작에서 각각의 비트 이진수, 그 결과는 각각의 비트에 부가된다).

2> 진수

  八进制逢8进1,所有的数字是0到7组成。

  十进制转八进制:
    除八反序取余法(将十进制数每次除以8,取出余数,按照结果倒叙排序)。
  
  二进制转化为八进制:
    将二进制数字从右到左,每3个二进制数划分为一组,将每组数据的二进制转换成八进制对应的数字即可。
  八进制转换为二进制:     八四二一法则(将八进制的每一个位数上的数字拆开,分别用二进制表示即可。)

3>.十六进制 

  十六进制逢16(F)进1,由数字0-9和字母A-F组成。
  
  十进制转化为十六进制
    除十六反序取余法(将十进制数每次除以16,取出余数,按照结果倒叙排序,需要注意的是大于10的数字应该由A-F来表示)
  
  十六进制转化为十进制
    权值法(将二进制各个位数从0位开始乘以16的N次幂,将各个位数的结果相加)。

  十六进制转换为二进制
    八四二一法则(将十六进制的每一个位数上的数字拆开,分别用二进制表示即可。)

  二进制转换为十六进制  
    将二进制数字从右到左,每4个二进制数划分为一组,将每组数据的二进制转换成八进制对应的数字即可。

  十六进制转换为八进制  
    思路就是先将十六进制转换成二进制,再将二进制转换成八进制。
  
  八进制转换成十六进制
    思路就是先将八进制换转成二进制,再将二进制转换成十六进制。

4>.进制转换表

 

 5>.在C程序中进制打印案例

[[email protected] /yinzhengjie/code/day002]# cat binary_conversion.c
/*
@author :yinzhengjie
blog:http://www.cnblogs.com/yinzhengjie
EMAIL:[email protected]
*/

#include <stdio.h>

int main(void)
{
    //十进制数字10
    int a = 10;
    printf("%d\n",a);

    //定义八进制
    int b = 010;
    printf("%d\n",b);

    //定义十六进制
    int c = 0x10;
    printf("%d\n",c);

    return 0;
}
[[email protected] /yinzhengjie/code/day002]# 
[[email protected] /yinzhengjie/code/day002]# gcc -o binary_conversion binary_conversion.c
[[email protected] /yinzhengjie/code/day002]# 
[[email protected] /yinzhengjie/code/day002]# ./binary_conversion 
10
8
16
[[email protected] /yinzhengjie/code/day002]# 
[[email protected] /yinzhengjie/code/day002]# 
[[email protected] /yinzhengjie/code/day002]# cat binary_conversion.c
/*
@author :yinzhengjie
blog:http://www.cnblogs.com/yinzhengjie
EMAIL:[email protected]
*/

#include <stdio.h>

int main(void)
{
    //十进制数字10
    int a = 10;
    printf("%o\n",a);

    //定义八进制
    int b = 010;
    printf("%o\n",b);

    //定义十六进制
    int c = 0x10;
    printf("%o\n",c);

    return 0;
}
[[email protected] /yinzhengjie/code/day002]# 
[[email protected] /yinzhengjie/code/day002]# gcc -o binary_conversion binary_conversion.c
[[email protected] /yinzhengjie/code/day002]# 
[[email protected] /yinzhengjie/code/day002]# ./binary_conversion 
12
10
20
[[email protected] /yinzhengjie/code/day002]# 
[[email protected] /yinzhengjie/code/day002]# 
[[email protected] /yinzhengjie/code/day002]# cat binary_conversion.c    #以八进制方式显示
[[email protected] /yinzhengjie/code/day002]# cat binary_conversion.c
/*
@author :yinzhengjie
blog:http://www.cnblogs.com/yinzhengjie
EMAIL:[email protected]
*/

#include <stdio.h>

int main(void)
{
    //十进制数字10
    int a = 10;
    printf("%x\n",a);

    //定义八进制
    int b = 010;
    printf("%x\n",b);

    //定义十六进制
    int c = 0x10;
    printf("%x\n",c);

    return 0;
}
[[email protected] /yinzhengjie/code/day002]# 
[[email protected] /yinzhengjie/code/day002]# gcc -o binary_conversion binary_conversion.c
[[email protected] /yinzhengjie/code/day002]# 
[[email protected] /yinzhengjie/code/day002]# ./binary_conversion 
a
8
10
[[email protected] /yinzhengjie/code/day002]# 
[[email protected] /yinzhengjie/code/day002]# 
[[email protected] /yinzhengjie/code/day002]# cat binary_conversion.c    #以十六进制方式显示
[[email protected] /yinzhengjie/code/day002]# cat binary_conversion.c
/*
@author :yinzhengjie
blog:http://www.cnblogs.com/yinzhengjie
EMAIL:[email protected]
*/

#include <stdio.h>

int main(void)
{
    //十进制数字10
    int a = 10;
    printf("%X\n",a);

    //定义八进制
    int b = 010;
    printf("%X\n",b);

    //定义十六进制
    int c = 0x10;
    printf("%X\n",c);

    return 0;
}
[[email protected] /yinzhengjie/code/day002]# 
[[email protected] /yinzhengjie/code/day002]# gcc -o binary_conversion binary_conversion.c
[[email protected] /yinzhengjie/code/day002]# 
[[email protected] /yinzhengjie/code/day002]# ./binary_conversion 
A
8
10
[[email protected] /yinzhengjie/code/day002]# 
[[email protected] /yinzhengjie/code/day002]# 
[[email protected] /yinzhengjie/code/day002]# cat binary_conversion.c    #以十六进制方式显示

 

三.计算机内存数值存储方式

1>.原码

一个数的原码(原始的二进制码)有如下特点:
    最高位作为符号位,0表示正,1表示负;
    其它数值部分都是数值本身绝对值的二进制数;
    负数的原码是在其绝对值的基础上,最高位变为1;

举个例子,我们用一个字节的原码来表示+15,-15,+0,-0
    +150000 1111
    -151000 1111
    +00000 0000
    -01000 0000

    原码表示方法简单易懂,带有符号数本身转换方便,只要符号还原即可,但当两个整数相减或不同符号相加时,必须比较两个数哪个绝对值大,才能决定谁减谁,才能确定结果是正还是负,所以原码不便于加减运算。

2>.反码

 

3>.补码

 

4>.补码的意义

 

四.

 

五.

 

추천

출처www.cnblogs.com/yinzhengjie/p/10941577.html