【送给在路上的程序员】
对于一个开发者而言,能够胜任系统中任意一个模块的开发是其核心价值的体现。
对于一个架构师而言,掌握各种语言的优势并可以运用到系统中,由此简化系统的开发,是其架构生涯的第一步。
对于一个开发团队而言,能在短期内开发出用户满意的软件系统是起核心竞争力的体现。
每一个程序员都不能固步自封,要多接触新的行业,新的技术领域,突破自我。
内存补码分析
#include<stdio.h> #include<stdlib.h> void main3() { //printf不会进行数据类型转换 printf("%d", (int)10.3);//printf不管你是什么类型,按照%d ,%f解析数据 printf("\n%f", (float)10); getchar(); } void main4() { int num = 100; printf("%p", &num);//不同的解释方式就有不同的解释结果 getchar(); } void main5() { char ch = 1,ch1='1';//字符与编号的区别 printf("%d,%d", ch,ch1); getchar(); } void main6() { //解析的时候,与数据的长度有关系 unsigned short num = 65535+1; printf("刘宁波有%d元", num); // 99 // 100 getchar(); } void main7() { //补码,计算机存储数据的方式 short num = -1; printf("%d", num); printf("\n%u", num);//%u 0-正整数 getchar(); }
补码原码实战
#include<stdio.h> #include<stdlib.h> #include<limits.h> void main10() { int x = 1; int y = -1;//补码 printf("x=%p,y=%p", &x, &y); system("pause"); } void main123() { //int unsigned int 4个字节32位 //有符号,0代表正数,1代表负数 //0111 1111 1111 1111 1111 1111 1111 1111 //1111 1111 1111 1111 1111 1111 1111 1111//无符号,正数,全部都是数据 printf("%d,%d", INT_MAX, INT_MIN);//%d只能显示INT_MIN->INT_MAX printf("\n%d,%d", INT_MAX+1, INT_MIN-1); printf("\n%u,%u", UINT_MAX, 0); printf("\n%u,%u", UINT_MAX+1, 0-1);//%u 0->UINT_MAX system("pause"); } void main1234() { int x = 4294967295; int y = -1; //1111 1111 1111 1111 1111 1111 1111 1111内存的存储方式 //无符号,没有符号位,全部都是数据 4294967295 //0000 0000 0000 0000 0000 0000 0000 0001 1原码 //1000 0000 0000 0000 0000 0000 0000 0001 -1的原码 //1111 1111 1111 1111 1111 1111 1111 1110 -1的反码 //1111 1111 1111 1111 1111 1111 1111 1111 -1的补码 printf("%d,%u", x,x); printf("\n%d,%u", y, y); getchar(); } void main() { unsigned int num = -1;// //1111 1111 1111 1111 1111 1111 1111 1111内存的存储方式 printf("%d,%u", num, num); system("pause"); }
打印整数二进制数据
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> void main1() { int num; scanf("%d", &num); printf("num=%d,&num=%p\n", num,&num); int data = 1 << 31;//构建一个相与的数据 for (int i = 1; i <= 32; i++) { int temp = num&data;//求出首位相与 if (temp == 0) { putchar('0'); } else { putchar('1'); } num <<= 1; if (i % 4 == 0) { printf(" "); } } system("pause"); } void main() { int num; scanf("%d", &num); printf("num=%d,&num=%p\n", num, &num); int data = 1 << 31;//构建一个相与的数据 if (num < 0) { num = ~num + 1;//求原码 num = num | data;//设置符号位 } for (int i = 1; i <= 32; i++) { int temp = num&data;//求出首位相与 if (temp == 0) { putchar('0'); } else { putchar('1'); } num <<= 1; if (i % 4 == 0) { printf(" "); } } system("pause"); }
静态库说明
1.属性添加 xxx.lib 链接 或者代码方式实现 #pragma comment(lib, "detours.lib")
2.并且把xxx.lib 放到源码目录下
|=========== 吴英强CSDN博客专栏==============|
|== C/C++学院 专栏文章的内容(不定期更新)===|
|== linux驱动开发 探索linux底层的奥秘
==========|
|== Java基础学习篇 掌握java语言的基础知识=====|
|====== 每天进步一点点,健康快乐每一天 ========|
版权声明:欢迎转载,希望在您转载的同时,添加原文地址,谢谢配合!
时间: 2024-12-13 11:16:27