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]#
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
[[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]#
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
[[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]#
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
[[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>.补码的意义
四.
五.