码迷,mamicode.com
首页 > 编程语言 > 详细

【C/C++学院】0725-内存补码分析/补码原码实战/打印整数二进制数据/静态库说明

时间:2015-08-01 22:08:08      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

【送给在路上的程序员】

对于一个开发者而言,能够胜任系统中任意一个模块的开发是其核心价值的体现。

对于一个架构师而言,掌握各种语言的优势并可以运用到系统中,由此简化系统的开发,是其架构生涯的第一步。

对于一个开发团队而言,能在短期内开发出用户满意的软件系统是起核心竞争力的体现。

每一个程序员都不能固步自封,要多接触新的行业,新的技术领域,突破自我。

内存补码分析

#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语言的基础知识=====|

|====== 每天进步一点点,健康快乐每一天 ========|




版权声明:欢迎转载,希望在您转载的同时,添加原文地址,谢谢配合!

【C/C++学院】0725-内存补码分析/补码原码实战/打印整数二进制数据/静态库说明

标签:

原文地址:http://blog.csdn.net/waldmer/article/details/45366505

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!