2013年10月09日 星期三 10时03分51秒

回顾:
 1.变量
 2.scanf标准函数

字符类型是一种数据类型
在C语言程序中字符类型用char表示
字符类型中包含了256个不同的字符,例如'a','+','~'  ...
字符类型中的所有字符在计算机中都是使用数字表示的
ASCII码表描述了字符和数字之间的对应关系
'a' -- 97
'A' -- 65
'0'     -- 48 (字符0,不是数字0)

256个字符分成两组,每组128个,其中一组包含所有常见字符,这些字符对应的整数位于0到127之间
这组字符和整数之间的对应关系在所有计算机上都一样

另外一组字符和整数之间的对应关系在不同的环境下是不同的;这组字符对应的数字范围是从 -1 到 -128 或者 128 到255

字符类型数字一般不要当整数使用

无符号字符类型和字符类型所包含的字符是一样的,但是他们所对应的整数范围是固定的(0到255)
无符号类型使用 unsigned char 来表示

ASCII码表中所有小写英文字母字符和大写英文字母字符以及阿拉伯数字字符都是连续的

't' - 'a'  等于   'T' - 'A'
'd' - 'a'  等于   '3' - '0'

'\n' 换行字符
'\r' 回车字符    (printf语句中会把\r之前内容覆盖掉)
'\t' 制表符
'\\' 代表\
'\'' 代表'
'\"' 代表"

短整数类型是一种数据类型
短整数类型用short表示
短整数类型一共包含65536个不同的整数数字
这些整数的范围是从 -32768 到 32767

无符号短整数类型也是一种数据类型
无符号短整数使用 unsigned short表示
无符号短整数同样包含65536个不同的整数,范围是0到65535

长整数也是一种数据类型
长整数用long int 或者long 表示
这个数据类型包含2的32次方个不同的整数
这些整数的范围是从 -2的31次方 到 2的31次方减一

无符号长整数类型也是一种数据类型
无符号长整数类型用unsigned long或者unsigned long int表示
无符号长整数的数字范围是从 0 开始 到 2的32次方减一 为止

整数类型在我们的计算机环境中和长整数类型一致
整数类型使用int表示
无符号整数类型用 unsigned int 表示

所有整数类型之间是互相重叠的
所能表示的数字范围逐级扩大

C语言中可以使用两种数据类型表示带小数点的数字
单精度浮点数类型用float表示
双精度浮点数类型用double表示
单精度浮点类型所能表示的精度范围低

程序中所有不带小数点的数字自动被当成int类型数字处理
如果希望在程序中使用无符号整数类型的数字则需要在数字后面加u,例如:3u;

程序中所有带小数点的数字自动被当成double类型数字处理
如果希望在程序中使用float类型的数字则需要在数字后加f,例如:2.3f

---------------------占位符列表-------------------------
char  -- %c 或 %hhd
(%c打印字符身份,%hhd打印数字身份)
unsigned char -- %c 或 %hhu
short  -- %hd
unsigned short -- %hu
long  -- %ld
unsigned long -- %lu
int  -- %d
unsigned int -- %u
float  -- %f 或 %g
double  -- %lf 或 %lg
(%g和%lg不会保留小数点后面无效的0,%f和%lf会保留)

%nd可以规定打印结果占n个位置,没有数字的位置用空格填充
%-nd同样可以规定打印结果所占的位置数量,负号表示有效内容靠左显示
%0nd同样可以规定打印结果所占的位置数量,0表示无效位置用0填充
%n.mf做占位符同样可以打印浮点数,其中n表示打印结果一共占多少位置,m表示小数点后面占多少位置
--------------------------------------------------------
计算机内存被划分成多个同样大小的格子,每个格子叫做一个字节
每个变量一定是多个连续字节存储的
计算机为每个字节分配了一个编号(地址),不同字节的编号一定不同
地址从0开始递增

变量的地址是存储它的那些字节中地址最小的字节的地址
所有数据或者变量所占据的字节数必须是2的整数次方;

sizeof关键字可以用来计算某个数据类型或者某个变量所占的空间字节数;

各种数据类型的大小
char(unsigned char) 1个字节
short(unsigned short) 2个字节
long(unsigned long) 4个字节
int(unsigned int) 4个字节
float   4个字节
double   8个字节

sizeof关键字的小括号中对变量所做的修改不会真正生效
--------------------------------------------------------
通常表示数字的方式叫做十进制
每个数位上有10种不同的状态

计算机中使用二进制表示数字
二进制中每个数位上只有两种不同的状态(分别使用0和1表示)

二进制和十进制都是一种表示数字的方式
任何数字既可以用十进制表示,也可以用二进制表示

二进制数字中每个数位都有编号,最右边的数位编号为0,向左依次递增
二进制数字中每个数位上的1相当于2的位数次方

二进制数字转换十进制时可以把每个数位上的1单独转换,然后把转换结果求和
0011 0101 = 32 + 16 + 4 + 1=53
十进制数字转换二进制
51= 32 + 16 + 2 + 1
0010 0000  32
0001 0000  16
0000 0010    2
0000 0001    1
0011 0011  51
---------------------练习-------------------------------
73 = 64 + 8 + 1
0100 1001
111 = 64 + 32 + 8 + 4 + 2 + 1
0110 1111 
105 = 64 + 32 + 8 + 1
0110 1001
200= 128 + 64 + 8
1100 1000
234= 128 + 64 + 32 + 8 + 2
1110 1010
------------------十进制转换二进制----------------------
  5 #include <stdio.h>
  6
  7 int main()
  8 {
  9         int num=0;
 10         printf("请输入一个0~255的数字:");
 11         scanf("%d",&num);
 12         printf("%d",num / 128);
 13         num=num % 128;
 14         printf("%d",num / 64);
 15         num=num % 64;
 16         printf("%d",num / 32);
 17         num=num % 32;
 18         printf("%d ",num / 16);
 19         num=num % 16;
 20         printf("%d",num / 8);
 21         num=num % 8;
 22         printf("%d",num / 4);
 23         num=num % 4;
 24         printf("%d",num / 2);
 25         num=num % 2;
 26         printf("%d\n",num / 1);
 27         num=num % 1;
 28
 29 }
--------------------------------------------------------
除以2取余倒着写
**** ***1 173
0*** ***0 86
00** ***1 43
000* ***1 21
0000 ***0 10
0000 0**1 5
0000 00*0 2
0000 0001 1
--------------------------------------------------------
通过上面的方法计算得出的二进制数字叫做原码
计算机中使用补码记录数字
所有非负数的原码和补码一样

内存中每个字节对应八个二进制位

八进制和十六进制是两种二进制的简化写法

1100 0110 = 11 000 110
   = 306   八进制
C语言程序中可以直接使用八进制形式表示数字,必须在前边加一个0
%o 做占位符可以把数字的八进制表现形式打印在屏幕上

1100 0110 =C6    十六进制
十六进制中每个数位上用0到9以及a到f来表示

C语言程序中可以直接使用十六进制表示数字,必须在前边加上0x;

程序中直接使用十六进制方式表示的数字计算机自动把它当成无符号整数类型看待

%x或%X做占位符可以把数字的十六进制表现形式打印在屏幕上
--------------------------------------------------------
补充:
    '\r' 回车字符
    例:
    printf("*******%d\r",1);
    printf("******%d\r\n",2);
    则输出结果为:
    ******21
    也就是说 ‘\r’ 会在输出的时候把光标重新定位到第一位
    也就是覆盖前面的内容;
    例:
    printf("123456789\r");
    printf("000\r\n");
    则输出结果为:
    000456789
    ~!注意:\r必须与\n必须一起使用,否则输出为空
--------------------------------------------------------

预习:
 1.负数的二进制补码计算
 2.C语言中的操作符
 
作业:
 1.编写程序按照除以2取余倒着写的方式计算用户给定数字的二进制并打印在屏幕上(规定输入数字范围0~255之间)
 2.编程把用户给定的秒数转换成如下格式
 hh : mm : ss

Day04_数据类型占位符使用及进制转换的更多相关文章

  1. JAVA基础学习之String、StringBuffer、StringBuilder、基本数据类型的使用、整形进制转换、集合Collection、Vector、ArrayList、LinkedList、HashSet、TreeSet等(3)

    主函数类MainDemo.java package com.itcast.test20140109; import java.util.ArrayList; import java.util.Coll ...

  2. CodeForces 1B-字符串,进制转换与数学

    一个萌新的成长之路 Background 同学们都回家了,只有我和wjh还有邢神在机房敲代码,吃random口味的方便面-- Description Translated by @PC_DOS fro ...

  3. Java进制转换, 数据类型, 运算符

    1:进制转换 转换规则: 先把数据的每一位上的系数乘以对应基数的次幂(低位从零开始),然后相加即可 十进制到其他进制 规则:除基取余,直到商为0,最后将余数反转 十进制到二进制: 除2取余,直到商为0 ...

  4. python 数据类型、进制转换

    数据类型 存储单位 最小单位是bit,表示二进制的0或1,一般写作b 最小的存储单位是字节,用byte表示,1B = 8b 1024B = 1KB 1024KB = 1MB 1024MB = 1GB ...

  5. python27期day03:字符串详解:整型、可变数据类型和不可变数据类型、进制转换、索引、切片、步长、字符串方法、进制转换、作业题。

    1.%s: a = "我是新力,我喜欢:%s,我钟爱:%s"b = a%("开车","唱跳rap")print(b)2.整型: 整数在Pyt ...

  6. Java基础复习之一篇:关健字,标识符,注释,常量,进制转换,变量,数据类型,数据类型转换

    1.关健字 1.1.被Java语言赋予特定意义的单词(如:class,interface,public ,static) 1.2.全部是小写 1.3.注意事项(goto和const作为关健字保留起来) ...

  7. 进制转换&数据类型(1)

    一: 进制转换 在计算机中, 数据都是以0和1来表示的 进制: 进位制 十进制: 数字由0~9这10个数字来表示, 逢10进1位 0 1 2 3 4 5 6 7 8 9 10 二进制: 数字由0和1这 ...

  8. 大数据学习--day02(标识符、变量、数据类型、类型转换、进制转换、原码反码补码)

    标识符.变量.数据类型.类型转换.进制转换.原码反码补码 标识符: java50个关键字不能做标识符,以数字开头不能做标识符(这个老是忘记写一个类名的时候) 变量: 变量分为成员变量和局部变量,注意作 ...

  9. 2 Java基础语法(keyword,标识符,凝视,常量,进制转换,变量,数据类型,数据类型转换)

    1:keyword(掌握) (1)被Java语言赋予特定含义的单词 (2)特点: 所有小写. (3)注意事项: A:goto和const作为保留字存在. B:类似于Notepad++这种高级记事本会对 ...

随机推荐

  1. 【Unity/Kinect】Kinect实现UI控件的点击

    用体感来实现UI控件的点击,如点击按钮. 做法:用一个图片表示左手手掌,图片位置追踪左手手掌移动,当手掌位于UI控件的矩形内时,握拳表示点击该控件. using UnityEngine; using ...

  2. 【Visual Studio】控制台程序运行时一闪而过

    问题:写一个C#控制台程序,运行时控制台一闪而过.程序结束.无法看清控制台输出的结果. 办法: 方法一二三都有人写过百度经验了:怎么解决VS运行程序一闪而过 其实还有一种办法,就是把控制台程序改为Wi ...

  3. java——关于异常处理机制的简单原理和应用2(转)

    Java中的异常 Exception java.lang.Exception类是Java中所有异常的直接或间接父类.即Exception类是所有异常的根类. 比如程序: public class Ex ...

  4. udev规则以及编写

    主要内容: udev简介 如何配置和使用udev 如何编写udev规则 字符串替换和匹配 udev主要作用 编写udev规则实例 难点解析 1. udev简介 1.1 什么是udev? udev是Li ...

  5. [转]Handler学习笔记(二)

    一.一个问题 有这样一个问题值得我们思考,若把一些类似于下载的功能(既耗时且不一定有结果)写在Activity(主线程)里,会导致Activity阻塞,长时间无响应,直至页面假死(如果5秒钟还没有完成 ...

  6. sql 存储过程 in 的两种写法

    最近又忘记存储过程 除了exec 动态写法的另外一种,这里记录一下,方便查找 写法1,动态语句 CREATE PROCEDURE sp_CountShiftWish @strids varchar ( ...

  7. 【转】 web 测试使用的chrome插件

    1.二维码插件 https://chrome.google.com/webstore/detail/%E4%BA%8C%E7%BB%B4%E7%A0%81qr%E7%A0%81%E7%94%9F%E6 ...

  8. WCF系列

    转自:1) http://www.cnblogs.com/zhili/p/WCFSummary.html 2)  http://www.cnblogs.com/artech/archive/2009/ ...

  9. e659. 缩放,剪取,移动,翻转图形

    AffineTransform tx = new AffineTransform(); tx.scale(scalex, scaley); tx.shear(shiftx, shifty); tx.t ...

  10. 直接拿来用!最火的Android开源项目(转)

    摘要:对于开发者而言,了解当下比较流行的开源项目很是必要.利用这些项目,有时能够让你达到事半功倍的效果.为此,CSDN特整理了GitHub上最受欢迎的Android及iOS开源项目,本文详细介绍了20 ...