C语言学习笔记一---C语言概述

一.编程语言与解释语言

1.程序的执行

  a.解释:借助一个能试图理解程序的程序,使计算机按要求执行你自己写的程序

  b.编译:将所写程序翻译为机器语言写的程序,使计算机按要求执行你自己写的程序

2.两者的关系:

  a.本质上无太大区别,个人喜好问题,都是程序的常用执行方式

  b.语言本无解释/编译之分

  c.各自的优势:

    解释型语言有特殊的计算能力(以前认为慢,但后面随着硬件的发展,效率不是问题);编译型语言有确定的运算性能。

二.C语言发展历程

1.FORTRAN->BCPL->B语言(支持指针间接方式(灵魂))->C语言

2.C主要用于写操作系统,现在其他语言都是C-like语言,且C介于高级语言与汇编语言之间,兼备其优点

3.语言的能力/适用领域主要由库和传统决定

扫描二维码关注公众号,回复: 11358898 查看本文章

4.标准:C89->C95->C99(所有编译器都支持)->C11

三.原码,补码与反码

1.概念:

  原码:最高字节的最高位为符号位(1为-,0为+),其余为该数的绝对值的二进制表示

  反码:原码为正数:一样;原码为负数时: 除符号位外取反

  补码:负数的补码为原码除符号位外取反+1,正数与原码一样

2.数在计算机中的表示

  a.正数:二进制原码

  b.负数:二进制补码

3.8位无符号二进制数:0000  0000 ->1111 1111  (0->255)

   8位有符号二进制数:  原码所表示的十进制范围:-127->+127

             反码所表示的十进制范围:-127->+127

             补码所表示的十进制范围:-128->+127

 注: -128的补码:1000 0000   无原码与反码

四.进制书写及在编程中的使用

1.题目中的书写(后缀表示法)  ---不能用于编程

  二进制数:(1010)2  or xxxx(B)

  八进制数:(1010)8  or xxxx(O)

  十进制数:(1010)10 or xxxx(D)      (D可省略)

  十六进制:(1010)16 or xxxx(H)

2.编程中记号(前缀表示法)

  A.八进制数:以0开头,数值为0-7,如027;

     十进制数:正常表示

     十六进制数:以0x开头(0~f)或者0X开头(0~F),如0x17

  B.在转移字符中的使用:

   八进制数:’\ddd‘   ,使用方式:int i=’\111‘;

   十进制数:即ASCII码

   十六进制:’\xhh‘

五.进制转换

1.整数十进制转换为其他进制:除R取余法

2.实数(带小数)的进制转换:    分为整数和小数部分进行处理        小数部分:乘R取整法

例子: 将43.6125转换为二,八,十六进制数

    0.6125*2=1.2250        ->  1

    0.2250*2=0.45             ->0

    0.45*2=0.9              ->0

    0.9*2=1.8           ->1

    0.8*2=1.6        ->1

    0.6*2=1.2        ->1

        so,43.6125==>101011.10011100(B)    注:保留多少位小数时,0舍1入

   同理,可得到  53.471(O)      ,  2B.9C1(H)

猜你喜欢

转载自www.cnblogs.com/lyq-20010210/p/13190472.html