如何對一些數字需要輸出,取反,求其是幾位數
//求十進位制數字n的數字位數
//我們要求乙個數字的位數,可以先從他的個位開始統計,step1:判斷這個數字n整除10 是否為0,如果為零,則它是個個位數,如果不為0,則它至少是個兩位數。step2:我們則給它的位數+1。step1:將n/10後的值賦值給n,例如:1234/10=123. 重複以上步驟
/*int getfigures1(int n)
return i;
}*/
如果用for語句求數字0的位數,數字0無法計入迴圈,i的值為0。則輸出0的位數為0,利用do while剛好解決這個問題
int getfigures(int n)
while(n!=0);
return count;
}
//逆序輸出十進位制數字n,如123456->654321
void printreverse(int n)
do while(n!=0);
printf("\n");
}
//順序輸出十進位制數字n,如123456->123456
通過求十進位制數字n的數字位數我們可以知道如何輸出最後一位,捨棄最後一位。同理我們也可以輸出乙個數字n的首位,然後捨棄首位,只是不同的是前者是整除10。後者是整除10的count-1次方,然後再對10的count-1次方取餘,最後10 的count-1次方對10取餘,依次迴圈直到n==0時結束迴圈
例如:123456整除10 的6-1次方為1(123456/100000=1),
123456對10 的6-1次方求餘等於23456(123456%100000=23456),
10的6-1次方整除10 等於10000,23456再整除10000,然後再對10000取餘,依次迴圈,直到最後數字為0
void printorder(int n)
{ int count=getfigures(n); //定義乙個常量count接收呼叫函式getfigures()的值
int tmp=1;
for(int i=1;i
按十進位制位與運算
需求 所有包含5級裝備的獎勵,需要通關10234567後才能領取。遊戲的id規則如下 長度 8位十進位制數,如12345678 前2位表示id型別,比如10表示關卡id,11表示裝備id,12表示物品id 其中對於乙個裝備id 11234 5672表示品質 34表示部位 567表示等級 方法1 對程...
模擬十進位制數字的進製轉換
先看乙個最簡單的十進位制數轉為二進位制 define crt secure no warnings include include int main for i i 1 i 0 i system pause return 0 這其實就實現了將乙個十進位制數轉為二進位制數字,思路也很簡單,就是建立乙個...
二進位制的按位與 按位或 按位異 按位取反的簡單總結
優先順序從高到低,依次為 運算子 操作 0 0 0 0 1 0 1 0 0 1 1 1 只要有乙個為0,其值為0。例子 10 9 0000 1010 0000 1001 0000 1000 8 運算子 操作0 0 0 0 1 1 1 0 1 1 1 1 只要有乙個為1,其值為1。例子 3 5 即 0...