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>定数
定数の影響: プログラムが実行され、変更できない値の量、 定数は、一般式または代入文に表示され、 いくつかの例: 整数定数:100、200 - 100、0 、等 実定数:3.14、9.18、1.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 /* @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 /* @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]#
三.计算机内存数值存储方式
1>.原码
一个数的原码(原始的二进制码)有如下特点: 最高位作为符号位,0表示正,1表示负; 其它数值部分都是数值本身绝对值的二进制数; 负数的原码是在其绝对值的基础上,最高位变为1; 举个例子,我们用一个字节的原码来表示+15,-15,+0,-0 +15 : 0000 1111 -15 : 1000 1111 +0 : 0000 0000 -0 : 1000 0000 原码表示方法简单易懂,带有符号数本身转换方便,只要符号还原即可,但当两个整数相减或不同符号相加时,必须比较两个数哪个绝对值大,才能决定谁减谁,才能确定结果是正还是负,所以原码不便于加减运算。
2>.反码
3>.补码
4>.补码的意义
四.
五.