鸦领主 发表于 2020-10-29 09:50:43

第二天 进制转换 常量表达

本帖最后由 鸦领主 于 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;
101   0   0                                     2/2=1      0                                                       得出110101            
16 84   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): 浮点数


页: [1]
查看完整版本: 第二天 进制转换 常量表达