對十進位制數字的按位輸出,取反,並求其位數

2021-08-17 16:55:35 字數 1098 閱讀 6718

如何對一些數字需要輸出,取反,求其是幾位數

//求十進位制數字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...