1. 程式人生 > 其它 >ffffffff轉化為二進位制_棧和佇列--十進位制轉化為二進位制

ffffffff轉化為二進位制_棧和佇列--十進位制轉化為二進位制

技術標籤:ffffffff轉化為二進位制

需求:編寫程式使十進位制轉換成為二進位制

分析:十進位制轉換二進位制。如圖,只需要不斷除以2,然後將餘數逆置即可,我們可以將餘數依次輸入到棧中,利用棧先進後出的特性,再將棧中元素輸出即可得到二進位制序列

30a02f5b4888ce2819f0204c957ad5be.png
	int transform(int n){
		int stack[MAXSIZE],top = -1;
		int temp = n;
		int a;//a用來記錄每次相除得到的結果 
		while(temp != 0){
			a = temp % 2;
			temp = temp / 2;
			stack[++top] = a;
		}
		
//		//出棧輸出二進位制 
//		while(top != -1){
//			printf("%d",stack[top--]);
//		}
		
		//也可以寫為返回整形的形式 
		int result = 0; 
		while(top != -1){
			result = result * 10 + stack[top--];
		}
		return result;
		printf("%d",result);
	}