【送给在路上的程序员】
对于一个开发者而言,能够胜任系统中任意一个模块的开发是其核心价值的体现。
对于一个架构师而言,掌握各种语言的优势并可以运用到系统中,由此简化系统的开发,是其架构生涯的第一步。
对于一个开发团队而言,能在短期内开发出用户满意的软件系统是起核心竞争力的体现。
每一个程序员都不能固步自封,要多接触新的行业,新的技术领域,突破自我。
内存补码分析
#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 放到源码目录下
|=========== 吴英强优快云博客专栏==============|
|== C/C++学院 专栏文章的内容(不定期更新)===|
|== linux驱动开发 探索linux底层的奥秘 ==========|
|== Java基础学习篇 掌握java语言的基础知识=====|
|====== 每天进步一点点,健康快乐每一天 ========|