C言語の基礎 - データ型

            C言語の基礎 - データ型

                                  著者:殷Zhengjie

著作権:オリジナルの作品は、転載を避けました!それ以外の場合は、責任を負いません。

 

 

 

A.定数と変数

1>キーワード

    32個のCキーワードの総数。
1 > データ型キー(12)     文字、ショート、整数、ロング、フロート、ダブル、符号なし、署名、構造体、共用体、列挙型、viod
2 > 。キーワード制御文(12)
    IF、他に、スイッチ、ケース、デフォルトのため、行う、しばらく、BREAK、contiue、GOTO、リターン
。3 > 。タイプキーワードメモリ(5)
    オート、EXTERN、登録、静的、constの
。4 >。他のカテゴリー(3)
    はsizeof、 typedefは、揮発性

2>データ型

    データタイプの役割:コンパイラ予算オブジェクト(変数)は、メモリ空間を割り当てられました。

1>の定義のデータ型
  の変数の定義:
    データ型変数名[も知られている識別子]、例えば:「チャーHabby;」
  変数割当:
    変数名=値、例えば:「NAME =ジェイソン陰;」
    データ型変数[ID] =ような値、名称:「= 10 AGEのINT;」

。命名規則2>識別子を
  文字、数字、下線、
  (最初の文字が文字または下線でなければならない)数字で始まらない、
  名前を参照EENOWは、
  同じ繰り返し内で機能し、他の識別子はできません。
  組み込みのC言語のキーワードを使用しないで、
  識別子は大文字と小文字が区別されます。

 

3>定数

定数の影響:
    プログラムが実行され、変更できない値の量、
    定数は、一般式または代入文に表示され、

いくつかの例:
    整数定数:100200 - 1000 、等
    実定数:3.149.181.44 、などの
    文字定数:' A '' 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 PI 3.1415926 INTメイン(ボイド
{ // 定義変数INT _age = 18である; 
    のprintf(" 年齢D} = {%\ N- " 、_age); // 定数定義のconst int型 MONTH = 12である; 
    のprintf(" \ N-年月{%のD} "


    
    

    
     、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。バイナリ

    六角は、進数字である人々は規定を運ぶためにするための方法です。どんなバンド-Xバンドの場合は、操作の数が一つに一つだけの位置xが来ることを意味します。すべての小数は小数点で、16進数毎進で、すべてのバイナリは、バイナリである、というように、つまり、すべての六角X Xキャリー。

1>バイナリ

  バイナリ1に毎2は、全ての数字0,1は11 +ように、構成されている1 = 100 
小数バイナリターン:
    逆順に二つの方法のモジュロ加算(10進数を2で割っそれぞれ、余り、フラッシュバックによってソート結果を削除)。
具体的には小数バイナリ:
    重量法(2乗じN 0電力開始の各々からのビットの2進数、及び結果を各ビットに追加されます)。

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