標籤:
【送給在路上的程式員】
對於一個開發人員而言,能夠勝任系統中任意一個模組的開發是其核心價值的體現。
對於一個架構師而言,掌握各種語言的優勢並可以運用到系統中,由此簡化系統的開發,是其架構生涯的第一步。
對於一個Team Dev而言,能在短期內開發出使用者滿意的軟體系統是起核心競爭力的體現。
每一個程式員都不能固步自封,要多接觸新的行業,新的技術領域,突破自我。
記憶體補碼分析
#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// 100getchar();}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_MAXprintf("\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_MAXsystem("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-記憶體補碼分析/補碼原碼實戰/列印整數位元據/靜態庫說明