C基础3(二)(进程注射、变量交换、SystemParametersInfoA函数、进制转换)

1.手动dll注入

#include<stdlib.h>

#include<windows.h>



//	 _declspec(dllexport) 外部可以调用,没有不可调用

_declspec(dllexport) void goA()

{

	while (1)

	{

		MessageBoxA(0, "你在与间谍聊天", "请注意安全", 0);

	}





}

编译成dll后,使用dllinject注入某个进程。

2.两个变量交换

 

int a=10;int b=20;

//第一种方式

int temp=a;

a=b;

b=temp;



//第二种方式

a=a+b;

b=a-b;

a=a-b;

 

3.桌面换壁纸 

 

#include<stdio.h>

#include<windows.h>

void main()

{

	SystemParametersInfoA(20, 0, "E:\\360downloads\\wpcache\\internetcache\\286971_422.jpg", 3);

	//20 系统桌面 

	//0 默认参数 

	//图片路径

	//立即生效

	getchar();

}

4.进制转换

   (1).其他进制转换为十进制

  1>.二进制转换为十进制

   111011=1*2^5+1*2^4+1*2^3+0*2^2+1*2^1+0*2^0

        =32+16+8+0+2+1

         =59

      2>.八进制转换为十进制  

    printf("\d",0136) //0开头代表八进制

   136=1*8^2+3*8^1+6*8^0

      =64+24+6

      =94 

      3>.十六进制转换为十进制

    printf("\d",0x1F2A) //0x开头代表十六进制

   1F2A=1*16^3+15*16^2+2*16^1+10*16^0

     =7978

   (2)十进制转其他进制

  1>.十进制转二进制

       商    余数

    59/2=29    1

    29/2=14    1

    14/2=7      0

    7/2=3        1

    3/2=1      1

    1           1  

  逆向取余数  111011

  2>十进制转八进制

       printf("%o",94) //%o表示输出八进制数

          94/8=11    6

     11/8=1    3     

      1        1

         逆向取余数  136

     3>.十进制转十六进制

    printf("%x",7978) //%x表示输十六进制数

    7978/16=498  10

    498/16=31      2

    31/16=1      15

     1        1  

   逆向取余数  1F2A

 (3)其他进制互转

      1>.二进制转八进制

    从右向左,三位一组进行计算,不足三位左补0

    110111101=675

    110  111  101

     6    7   5  

      

      2>.二进制转十六进制

    从右向左,四位一组进行计算,高位不够补0

    110111101=1BD

    0001  1011  1101

     1     11    13 

      

   3>.八进制转二进制

    用3位二进制数代替每一位8进制数

    675=110  111 101

  4>八进制转十六进制

    printf("%x",0675);

    先转为二进制,再转为十六进制

    675=0001 1011 1101=1BD 

  5>十六进制转为二进制

   用4位二进制数代替每一位16进制数 

   1F2A=1 1111 0010 1010 

  6>十六进制转为八进制

   printf("%o",0x1F2A); 

   先转为二进制,再转为八进制 

   1F2A=1 111 100 101 010=17452

 (4).十进制小数的转换为二进制

    乘以2取整,顺序排列

             取整    剩余数        二进制

   0.625*2=1.25  1    1.25-1=0.25        0.101

   0.25*2=0.5    0      0.5           0.01   

   0.5*2=1       1      0                           0.1

5.数据类型的好处

  因为内存很宝贵,没有数据类型就不知道分配多大的内存空间,会造成内存的浪费,有了数据类型,才能更好的分配管理内存,节省不必要的开支.限制数据类型也可以处理一些非法输入。  

6.sizeof()

 单目运算符,计算操作数所占的字节数,操作数既可以是类型标示符,也可以是表达式;  

 

你可能感兴趣的:(parameter)