本帖最后由 鸦领主 于 2020-11-1 01:12 编辑
目录
一、进制转换 1.二进制
1)概括 2) 位数个数 3) 二进制转十进制 4) 十进制转二进制 5)VS实现十进制转换二进制 2.十进制 1)概括 2)十进制转十六进制 3)十六进制转十进制
二、C语言常量表达
1.概括
2.浮点数和整数
3.特殊的整数
1)常见的字符
2)特殊的字符
三、补充
1.VS一些快捷方式
2.%d和%f
一、进制转换
本次用到代码:
#include<stdio.h>
int main()
{
int n;
printf("输入0-15个数字");
scanf_s("%d",&n);
printf("%d",n/2/2/2%2);
printf("%d",n/2/2%2);
printf("%d",n/2%2);
printf("%d",n%2);
return 0;
}
二进制
1.概括:
1)二进制每增加一个位数,表达的数字个数乘2;
2)二进制每2进1,4位数2进制表达的是0到15之间的数字
3)二进制尾部每加一个0相当于这个数字乘以2(0010=二的一次方(2),00100等于二的二次方(4),001000等于二的3次方(8))
2.位数个数:
1位数表达2个数字: 0 ,1
2位数表达4个数字:00 01 10 11
3位数表达8个数字: 000 001 010 011 100 101 110 111
4位数表达16个数字: 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
32位数表达4294967296 ( 4G)个字数
3.将2进制转为10进制的方法:每一位数字乘以对应的倍数
(从右到左1 0 1 0 1 0 1 0 1 =1*256+0*128+1*64+0*32+1*16+0*8+1*4+0*2+1=(101010101=341)
256 128 64 32 16 8 4 2 1就这样以此类推)
1001 =1*8+0*4 +0*2 + 1 =8+1=9; 9+1 =>1010
1011 = 1*8+0*4+1*2+1=> 8+2+1= 11; 11+1 =>1100
1111 =1*8+1*4+1*2+1 = 8+4+2+1 =15 ; 15+1 =>10000
11111 =1*16+1*8+1*4+1x2+1 = 31; 31+1 =>100000
4.将10进制转为2进制的方法:除以2得余数(% 取余运算符,就是算除法取余数的功能)
20=10100 128=10000000 53=110101
20/2=10 余0 128/2=64 0 53/2=26 1
10/2=5 余0 64/2=32 0 26/2=13 0
5/2=2 余1 32/2=16 0 13/2=6 1 (1 1 0 1 0 1
2/2=1 余0 16/2=8 0 6/2=3 0 32 16 8 4 2 1 32+16+4+1=53)
1/2=0 余1 8/2=4 0 3/2=1 1
从下往上写就是10100 4/2=2 0 1/2=0 1;
1 0 1 0 0 2/2=1 0 得出110101
16 8 4 2 1 , 16+4=20 1/2=0 1 从下写得出10000000(128)
5.在VS里面实现10进制转为2进制的方法
第二天 进制转换
第二天 进制转换
4个printf可以表示16个十进制,5个printf可以表示32个十进制依次进行,32个printf可以表示4294967296个十进制(4G)(printf就相当于位数)
十六进制
1.概括
2、十六进制: 0-9 ABCDEF(A=10 B=11 C=12 D=13 E=14 F=15)
1)一个二进制数(1个晶体) : bit, 例如: 32位就是32个晶体能表达0到4G的
2)4个二进制数(4个晶体)。表达一 个0-15之间的数字,也就是一个16进制数
3)每个十六进制数字的位都是跟4个二进制的是等价的关系;
2.十进制转换十六进制
15=x0F(0代表0个16,右边的F代表的是15)
16=x10(1就等于是1个16了,0就代表0)
32=x20(2就等于是2个16了,0就代表0
)
48=x30(3就等于是3个16了,0就代表0)
49=x31(3就等于是3个16了,1就代表1)3*16+1=49
50=x32(3就等于是3个16,2就代表2)3x16+2=50
125=x7D((7就等于是7个16,D就代表13)7*16+13=125
213=xD5(D就等于是13个16,5就代表5) 13*16+5=213
255=xFF(F就等于是15个16,F就代表15) 15*16+15=255
可以自己用计算器试一下
3.十六进制转换二进制
x0F=0000 1111(看x后面的数字左边是对应二进制左边对应的,右边的数字对应二进制右边的)
x59=0101 1001 (5为0101 9为1001)
xD6=1101 0110 (D是13为1101 6为0110)
xFF=1111 1111 (F是15为1111 F是15为1111)
可以自己转换一下试试
二、C语言常量表达
1.概括
C语言的常量包括:整数常量、浮点数常量、字符常量和字符串常量
2.按照小数点划分:浮点数和整数
1)有俩种浮点数表达式:
单精度表达式(变量类型:float):622.00f (32位。整数16位,小数16位,优先给整数用,用的太多的话小数就没的用了就会显示0000,不会显示本来的数字)
双精度表达式(变量类型:double):655.665(64位。整数占32位,小数占32位,显示小数点后面数字)
2)有三种整数表达式(按照进制):
十进制:就是普通的十进制
十六进制:0x开头的就是十六进制
八进制(不常用):0开头的 列入0100就是八进制的64
3.特殊的整数表达式(‘字符’表达式):
包括:符号、大小写的字母、数字以及一些
1)常见的字符(ASCII)编码表
48-57=0-9
65-90=A-Z
97-122=a-z
#include<stdio.h>
int main()
{
int i = 'A'; //记得加单引号
printf("%d",i );
return 0;
}
第二天 进制转换 常量表达
#include<stdio.h>
int main()
{
printf("%d %d %d",‘5’‘H’‘g’ ); //记得加单引号
return 0;
}
第二天 进制转换 常量表达
常见的字符请百度参见ASCII编码表对照
2)特殊的字符
第二天 进制转换 常量表达
用法
第二天 进制转换 常量表达
补充
VS一些快捷键:
选中一行从头到尾或s者从尾到头:shift+end/home
选中多一行shift+向上建/向下键
剪切:shift+Delete
粘贴:shift+Insert
==================
%d (decimal): 十进制有符号整数输出输入
%f (float): 浮点数
|