标签:
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()
单目运算符,计算操作数所占的字节数,操作数既可以是类型标示符,也可以是表达式;
标签:
原文地址:http://www.cnblogs.com/ginb/p/4311832.html