關於10進位制轉2進位制的C語言程式碼
大多數人學過怎麼將10進位制數轉2進位制數的數學計算方法,筆者下面提供C語言的程式設計思想和程式碼。
任何自然數的10進位制數都是它本身。2進位制數只有1和0兩個數,且逢2進1。舉個例子,1的二進位制數為1,二的二進位制數為10,3的二進位制數為11,4的二進位制數為100…以此類推;
C語言程式設計思想:
我們寫一個數的二進位制編碼時,是將其與2相除後得到一個餘數,利用短除法,再按從下到上的順序依次寫出一串數。(參考下圖)
C語言中求餘數直接用“ % ”即可。但此時求出的餘數是最高位的,我們寫時需要放在最後,這裡就可以用一個陣列將求出的餘數存起來,輸出時只需要從陣列裡面最後往前輸出即可。
我們看下圖會發現,每次做模(%)運算,被除數都會改變,所以n的值就要不斷改變(n為我們要求的數)。C語言中賦值符號可完成這個功能:n=n/2 (將n除2的值賦給你n,這樣就不斷改變了n的值。也可以寫成n/=2;)
這樣函式基本完成。
#include<stdio.h>
int main()
{
int n,i,a[100],t;
while(scanf("%d",&n)!=EOF)//多組輸入
{
i=0;
while(n>0)//用n是否大於零來決定迴圈次數
{
a[i]=n%2;//存陣列
n/=2;//改變n
i++;//計算迴圈次數,方便統計a陣列中的元素個數
}
for(i--;i>=0;i--)//自己模擬一次,就知道為什麼i--放在for第一個位置了
printf("%d",a[i]);
printf("\n");
}
return 0;
}
``
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20190401223322673.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzkzNDQ0Nw==,size_16,color_FFFFFF,t_70)
相關文章
- C# 2進位制、8進位制、10進位制、16進位制...各種進位制間的輕鬆轉換C#
- JavaScript 進位制轉換(2進位制、8進位制、10進位制、16進位制之間的轉換)JavaScript
- C語言十進位制,八進位制,十六進位制輸出分析C語言
- 10進位制 VS 2進位制
- 【進位制轉換】二進位制、十六進位制、十進位制、八進位制對應關係
- C語言進位制轉換與列印C語言
- C語言中printf打出2進位制與16進位制數C語言
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- 10進位制轉8進位制(棧操作)
- Qt進位制轉換(十進位制轉十六進位制)QT
- 二進位制列印與逆序_C語言(轉)C語言
- 進位制之間的轉換之“十六進位制 轉 十進位制 轉 二進位制 方案”
- js二進位制和十進位制轉換程式碼JS
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 二進位制,八進位制,十進位制,十六進位制之間的轉換
- js 62進位制和10進位制相互轉換程式碼例項JS
- 2進位制_8進位制_16進位制之間快速轉換的技巧.txt
- 10進位制和16進位制互轉的例子
- 1474 十進位制轉m進位制+1475 m進位制轉十進位制
- 負數補碼(16進位制轉10進位制的負數)
- shell 中轉換16進位制10進位制
- n進位制轉十進位制
- 十進位制轉十六進位制
- 口算 16 進位制轉換 10 進位制,但只適合兩位的 16 進位制
- 計算機基礎進位制轉換(二進位制、八進位制、十進位制、十六進位制)計算機
- rowid與10進位制和2進位制之間的轉換
- 進位制與二進位制及相關轉換
- Python 進位制互相轉換(二進位制、十進位制和十六進位制)Python
- 用C#程式碼實現二進位制與十進位制的互相轉換C#
- 大話二進位制,八進位制,十進位制,十六進位制之間的轉換
- Go語言實現十進位制轉換成二、八、十六進位制Go
- JAVA 二進位制,八進位制,十六進位制,十進位制間進行相互轉換Java
- 2/8/16轉10進位制
- 二進位制、十進位制與十六進位制相互轉化
- 十進位制轉換為十六進位制和二進位制程式碼例項
- 【轉帖】Oracle中的二進位制、八進位制、十進位制、十六進位制相互轉換函式Oracle函式
- 十六進位制數轉十進位制
- 【進位制轉換】十進位制與十六進位制相互轉換方法