Day04_数据类型占位符使用及进制转换
回顾:
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_数据类型占位符使用及进制转换的更多相关文章
- 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 ...
- CodeForces 1B-字符串,进制转换与数学
一个萌新的成长之路 Background 同学们都回家了,只有我和wjh还有邢神在机房敲代码,吃random口味的方便面-- Description Translated by @PC_DOS fro ...
- Java进制转换, 数据类型, 运算符
1:进制转换 转换规则: 先把数据的每一位上的系数乘以对应基数的次幂(低位从零开始),然后相加即可 十进制到其他进制 规则:除基取余,直到商为0,最后将余数反转 十进制到二进制: 除2取余,直到商为0 ...
- python 数据类型、进制转换
数据类型 存储单位 最小单位是bit,表示二进制的0或1,一般写作b 最小的存储单位是字节,用byte表示,1B = 8b 1024B = 1KB 1024KB = 1MB 1024MB = 1GB ...
- python27期day03:字符串详解:整型、可变数据类型和不可变数据类型、进制转换、索引、切片、步长、字符串方法、进制转换、作业题。
1.%s: a = "我是新力,我喜欢:%s,我钟爱:%s"b = a%("开车","唱跳rap")print(b)2.整型: 整数在Pyt ...
- Java基础复习之一篇:关健字,标识符,注释,常量,进制转换,变量,数据类型,数据类型转换
1.关健字 1.1.被Java语言赋予特定意义的单词(如:class,interface,public ,static) 1.2.全部是小写 1.3.注意事项(goto和const作为关健字保留起来) ...
- 进制转换&数据类型(1)
一: 进制转换 在计算机中, 数据都是以0和1来表示的 进制: 进位制 十进制: 数字由0~9这10个数字来表示, 逢10进1位 0 1 2 3 4 5 6 7 8 9 10 二进制: 数字由0和1这 ...
- 大数据学习--day02(标识符、变量、数据类型、类型转换、进制转换、原码反码补码)
标识符.变量.数据类型.类型转换.进制转换.原码反码补码 标识符: java50个关键字不能做标识符,以数字开头不能做标识符(这个老是忘记写一个类名的时候) 变量: 变量分为成员变量和局部变量,注意作 ...
- 2 Java基础语法(keyword,标识符,凝视,常量,进制转换,变量,数据类型,数据类型转换)
1:keyword(掌握) (1)被Java语言赋予特定含义的单词 (2)特点: 所有小写. (3)注意事项: A:goto和const作为保留字存在. B:类似于Notepad++这种高级记事本会对 ...
随机推荐
- 核心交换机各项配置 Vlan划分、互访、ACL管控、链路聚合等
#!Software Version V200R001C00SPC300sysname IT_ServerRoom #交换机名称##vlan batch 10 20 30 40 50 60 70 8 ...
- 启动hive出错,提示没有权限
报错信息如下: which: no hbase in (/usr/local/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/bin:/usr/local/hive/bin:/ ...
- Yii-模型- criteria查找数据库方法
数据模型搜索方法: public function search() { // Warning: Please modify the following code to remove attribut ...
- win7/win8下手工搭建WAMP环境
win7/win8下手工搭建WAMP环境. 最近学习wamp,看了好多教程,出来好多问题,终于成功搞定,这里集合了一下最好的教程,写了一些自己的经验,希望大家有用 这里不能上传图片,我就写了个带pdf ...
- am335x phy led problem
问题描述 连接网线的情况下,每次进行软件"reboot",网口的LINK LED能够正常的熄灭,而ACTIVE LED却是亮的. reboot重启之后,LINK的灯正常变亮,而AC ...
- Spring 4 官方文档学习(十一)Web MVC 框架之Flash Attributes
接上一篇中的重定向. http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-fl ...
- 下面关于XML叙述不正确的是( )
A.XML标记必须关闭 B.XML是大小写敏感的 C.XML文件只能跟DTD文件一块使用 D.XML和XSL结合可以在浏览器上显示 解答:C
- UART通信协议
第一部分: UART使用的是 异步,串行通信. 串行通信是指利用一条传输线将资料一位位地顺序传送.特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场 ...
- jQuery-理解事件
一.理解事件 1.什么是事件 事件是Web浏览器通知应用程序(比如我们的js)发生了某个事情! 我们可以为这些特定的事情,事先安排好处理方案,这样就能够实现互动! 2.事件目标 你可以简单的理解为事件 ...
- iOS7入门开发全系列教程新地址
包括了系列1所有.系列2所有,系列3部分(进行中) 由于大家都知道的原因,换了github保存: https://github.com/eseedo/kidscoding 假设下载有问题能够留言,请在 ...