關於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)
相關文章
- 10進位制 VS 2進位制
- C語言進位制轉換與列印C語言
- 【進位制轉換】二進位制、十六進位制、十進位制、八進位制對應關係
- C語言中printf打出2進位制與16進位制數C語言
- Qt進位制轉換(十進位制轉十六進位制)QT
- 進位制之間的轉換之“十六進位制 轉 十進位制 轉 二進位制 方案”
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- 負數補碼(16進位制轉10進位制的負數)
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 二進位制,八進位制,十進位制,十六進位制之間的轉換
- n進位制轉十進位制
- 十進位制轉十六進位制
- 口算 16 進位制轉換 10 進位制,但只適合兩位的 16 進位制
- 進位制與二進位制及相關轉換
- 計算機基礎進位制轉換(二進位制、八進位制、十進位制、十六進位制)計算機
- Go語言實現十進位制轉換成二、八、十六進位制Go
- JAVA 二進位制,八進位制,十六進位制,十進位制間進行相互轉換Java
- 二進位制、十進位制與十六進位制相互轉化
- 整數轉化成八進位制、十六進位制、二進位制,以及轉回
- 計算機求解10進位制轉換任意進位制計算機
- C printf按8進位制、10進位制、16進位制輸出以及高位補0
- [計算機基礎] 計算機進位制轉換:二進位制、八進位制、十進位制、十六進位制計算機
- [20190716]十進位制轉換其他進位制指令碼.txt指令碼
- 二進位制轉十進位制快速方法
- c++的進位制轉換C++
- 1161:轉進位制(C C++)C++
- 一看就懂二進位制、八進位制、十六進位制數轉換十進位制
- 進位制詳解:二進位制、八進位制和十六進位制
- oracle_16進位制與10進位制轉換小示例Oracle
- 在c語言中輸出8進位制數,16進位制數C語言
- 十進位制轉二進位制推導(草稿)
- JavaScript十進位制轉換為二進位制JavaScript
- JavaScript 二進位制、八進位制與十六進位制JavaScript
- 彙編實現10進位制轉16進位制並以ASCII碼輸出ASCII
- JavaScript中的多種進位制與進位制轉換JavaScript
- 進位制的轉換
- 進位制轉換
- 遞迴函式實現十進位制正整數轉換為二進位制,八進位制,十六進位制遞迴函式