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++这种高级记事本会对 ...
随机推荐
- spi 总线协议记录
摘抄至: http://blog.csdn.net/skyflying2012/article/details/11710801 概述: SPI, Serial Perripheral Interfa ...
- [Linux应用]Linux应用程序输出数据重定向到文件中
转自:http://blog.chinaunix.net/uid-20680966-id-4698387.html 目的是要让程序的printf的打印能重定向到某个文本中,ctrl+c强制退出后查看文 ...
- Fiddler2 java代码拦截设置
jre -DproxySet=true -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8888 Or: jre -DproxySet=true -Dproxy ...
- 信号值大于-75dBm时
dBm是一个表示功率绝对值的值,是以1mw为0dbm,公式dbm=10×lg(毫瓦数/1).所以,为负值 这个值越大,表示信号越好,如-70dbm信号比-90dbm好 信号值大于-75dBm时,说明 ...
- apt-get install 的替换命令及mysql安装问题的解决
Some packages could not be installed. This may mean that you haverequested an impossible situation o ...
- Linux下DedeCMS详细安全设置
经常会听到使用dedecms的站长抱怨,网站又被挂马了,dedecms真的很不安全.dedecms可能存在某些漏洞这不假,但主要责任真的是dedecms吗?我们知道,一个黑客想上传木马,首先得可以找到 ...
- MySQL和Redis面试题小结
MySQL专题 1. 主键 超键 候选键 外键 主 键: 数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合.一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null). 超 ...
- 第二百八十二节,MySQL数据库-MySQL视图
MySQL数据库-MySQL视图 1.视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. 2.也 ...
- 观察者模式/ java实现附代码 /
/注:场景和例子引用github上的设计模式.传送门:https://github.com/iluwatar/java-design-patterns/tree/master/observer 场景: ...
- bootstrap -- css -- 按钮
本文中提到的按钮样式,适用于:<a>, <button>, 或 <input> 元素上 但最好在 <button> 元素上使用按钮 class,避免跨浏 ...