Linux下的c基礎程式設計——十進位制轉二進位制(遞迴法)
今天我們來用遞迴法寫一個十進位制轉二進位制的小程式。
首先大家要明白十進位制轉二進位制的演算法。
第一步先對2進行取餘。餘數就是二進位制的最後一位。
第二步對2進行整除所得的數再進行對2取餘
第三步用遞迴迴圈往復以上過程。
例如求5的二進位制。
5先對2取餘,餘1,最後一位就是1.然後5/2等於2,再對而進行取餘,餘0,倒數第二位就是0。然後2/2等於1,1再對2取餘,餘1,所以5的二進位制就是101.
下面附上我的程式碼,如有不合理的地方請指正!
#include <stdio.h> void to_binary(int n) { int r; r = n % 2; if(n >= 2) { to_binary(n/2); } putchar('0' + r); return; } int main() { int n; printf("enter a number(q to quit)!\n"); while((scanf("%d",&n)) == 1) { printf("Binary equivalent:"); to_binary(n); printf("\n"); printf("enter a number(q to quit):\n"); } return 0; }
下面附上我的執行截圖
相關推薦
Linux下的c基礎程式設計——十進位制轉二進位制(遞迴法)
今天我們來用遞迴法寫一個十進位制轉二進位制的小程式。 首先大家要明白十進位制轉二進位制的演算法。 第一步先對2進行取餘。餘數就是二進位制的最後一位。 第二步對2進行整除所得的數再進行對2取餘 第三步用遞迴迴圈往復以上過程。 例如求5的二進位制。 5先對2取餘,餘1,最後一位
C語言 十進位制轉二進位制 使用遞迴
decimalToBinary.c: #include<stdio.h> void decimalToBinary(int n); void main() { int n;
二進位制轉十進位制,十進位制轉二進位制(百度經驗)
轉成二進位制主要有以下幾種:正整數轉二進位制,負整數轉二進位制,小數轉二進位制; 1、 正整數轉成二進位制。要點一定一定要記住哈:除二取餘,然後倒序排列,高位補零。 也就是說,將正的十進位制數除以二,得到的商再除
Java十進位制轉二進位制,遞迴演算法
用遞迴演算法求一個int的二進位制字串; 思路是:遞迴最簡單情況(遞迴出口)是0和1;其餘的是先呼叫遞迴算出n/2的二進位制字串,然後加上n時的位數(n % 2)。 import java.util
C++資料結構4 二分查詢(遞迴方法)
二分查詢比順序查詢效率高很多 同樣的100萬個資料,順序查詢需要50萬次,而二分查詢需要20次左右既可以了。但是二分查詢需要的資料是已經排列好的,無序的資料則用不了二分查詢。 #include &l
C語言-求數字階乘(遞迴函式)
/* * C語言 求數字的階乘 */ #include <stdio.h> #include <stdlib.h> long jiecheng(int n); void main() { int n=0; pri
linux下C語言程式設計解決warning : incompatible implicit declaration of built-in function問題
在C語言程式設計過程中,偶遇如下warning,雖然並不影響最終的編譯結果,但是看著warning也很無語,畢竟強迫症。 我們可以發現被警告沒有宣告的都是常用
linux下C語言程式設計操作MySQL資料庫
原文地址:http://www.2cto.com/database/201506/407827.html 在實際應用中,我們不可能在命令列登入進資料庫進行資料的查詢、插入等操作,使用者一般是使用一個介面良好的應用程式軟體來對資料進行管理。為了方便應用程式的開發,MySQ
linux下C語言程式設計日誌(1):基於TCP協議的伺服器/客戶端程式
基於TCP協議的伺服器/客戶端程式 首先我們看一下使用TCP協議進行網路通訊的程式基本模型:伺服器首先進行初始化操作:呼叫函式socket建立一個套接字,函式bind將這個套接字與伺服器的公認地址繫結在一起,函式listen將這個套接字換成傾聽套接字,然後呼叫函式acc
十進位制轉二進位制(C++)
除二取餘法 相信大家應該都知道,十進位制轉k進位制的方法常用的就是除k取餘的方法,這裡針對這個方法,給出了C++的程式碼。需要注意的是,除二取餘的方法,對於餘數的選取是從後往前取的,所以在程式碼中,也要解決這個問題才行。 思路分析 模仿不停地除2的過程,每次除2之後用
linux 下C語言程式設計(2)——程序的建立,掛起,解掛,程序間通訊
在 linux 下利用C語言實現程序的建立,掛起和解掛操作 #include <stdio.h> #include <sys/stat.h> #include <sy
C++/C語言中十進位制轉二進位制的常見方法
用一個演算法實現十進位制數向二進位制數轉換,我們考慮得到7的二進位制表示,奇數的二進位制形式最後一位肯定是1,而偶數的二進位制最後一位肯定是0。可以通過7%2來計算二進位制最後一位數是0或者1。即對於十進位制整數n而言,二進位制表示的最後一位肯定可以用n%2計
Linux 下 C 網路程式設計之 多執行緒通訊 例項
簡單示例,有不對的地方,歡迎指點。 伺服器端 /* ============================================================================ Name : sockThreadServer
C語言實現十進位制轉二進位制
程式碼如下: # include <stdio.h> int main() { int i, n = 0, b[16]; scanf("%d", &i);
JS十進位制轉二進位制(控制位數)
主要需求:十進位制轉二進位制,控制指定的位數。 轉化顯示後的二進位制數為bin-bit中輸入的數字寬度。dec-number為5,bin-bit為5,則轉化後數字為00101。如果bin-bit小於轉化後的二進位制本身位數,則使用原本的位數,如dec-number為5,bin-bit為2,依然輸出101,但
黑馬《linux基礎程式設計》學習筆記(81到84)
八十一. lstat和stat函式的區別 八十二. 檔案屬性相關的函式 首先是access.c #include <stdio.h> #include <stdlib.h> #include <unistd.h>
黑馬《linux基礎程式設計》學習筆記(76到80)
七十六. 非阻塞讀終端 #include <unistd.h> #include <fcntl.h> #include <errno.h> #include <string.h> #include <stdlib.h> #include
Linux下由域名程式設計解析ip地址 (段錯誤(吐核))
#include<stdio.h> #include<sys/socket.h> //提供socket函式及資料結構 #include<netdb.h> //提供設定及獲取域名的函式 int main(int argc,char *arg
Linux下解壓分包文件zip(zip/z01/z02)
.com blank linu clas question multiple 壓縮 linux 方法 分包壓縮的zip文件不能被7z解壓,且這種格式是Windows才能創建出來,在Linux下不會以這種方式去壓包。下面是在Linux下處理這種文件的做法: 方法一:
ubuntu下c語言對mysql進行CRUD(增刪改查)
Step 1:登入mysql mysql -u root -p Step 2:在資料庫中新增資料: create database foo; use foo; CREATE TABLE children( childno int(11) NOT NULL