日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

输出整数的位数、按位输出(两种)以及逆序输出

發(fā)布時(shí)間:2025/3/20 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 输出整数的位数、按位输出(两种)以及逆序输出 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

輸出整數(shù)的位數(shù)、按位輸出(兩種)以及逆序輸出

  • 本次數(shù)字的基本操作及解釋
    • ①求數(shù)字所占位數(shù)
    • ②數(shù)字逐位從高位到低位輸出
    • ③數(shù)字逐位從低位到高位輸出
    • ④數(shù)字逆序輸出
    • 數(shù)字的按位輸出操作,逆序操作,輸出位數(shù)的操作,難度不大,而且邏輯過程比較容易理解,所以就不用圖解動(dòng)畫來展示,每一個(gè)操作,上面都給了一個(gè)例子實(shí)現(xiàn)操作的過程。

本次數(shù)字的基本操作及解釋

本次操作包括:
①求數(shù)字位數(shù)
輸入一個(gè)數(shù)字,輸出有幾位數(shù)字。
例如輸入465132
輸出:6位
②數(shù)字逐位從高位到低位輸出
輸入一個(gè)數(shù)字從高位低位逐漸輸出。
例如輸入465132
則每一位輸出 4 6 5 1 3 2 前面為每一位數(shù)字輸出
③數(shù)字逐位從低位到高位輸出
輸入一個(gè)數(shù)字從高位低位逐漸輸出。
例如輸入465132
則每一位輸出 2 3 1 5 6 4 前面為每一位數(shù)字輸出
④數(shù)字逆序輸出
例如輸入465132 輸出231564 前面整體為一個(gè)數(shù)

①求數(shù)字所占位數(shù)

int NumberLength(int number) {int Length = 0;while (number != 0){number /= 10;Length++;}return Length; }

在這里我們給函數(shù)傳入我們輸入的值。

int number;printf("please input number:");scanf_s("%d", &number);printf("這個(gè)數(shù)有%d位\n", NumberLength(number));

我們通過每次對(duì)于輸入的數(shù)字每次進(jìn)行除10處理甩去最后一位數(shù)字,然后長度從1開始,每次刪除一位數(shù)字之后讓長度+1

②數(shù)字逐位從高位到低位輸出

void PrintFromMax(int number) {int Putnumber;int Length = NumberLength(number); //獲得數(shù)字位數(shù)int MaxBit = pow(10,Length-1); //獲得以10為底數(shù),指數(shù)為位數(shù)-1的值(后面解釋)while (number != 0){Putnumber = number / MaxBit; //獲得最高位printf("%d\t", Putnumber); //輸出最高位number %= MaxBit; //甩掉最高位MaxBit /= 10; } }

我們?cè)讷@得以10為底以位數(shù)-1為指數(shù)的求解目的是為了獲得最高位:
舉例:輸入465132
那么MaxBit的值就是 10 的 5 次方 及就是100000
那么用465132 / 100000 的時(shí)候就可以獲得最高位的數(shù)組4
那么再用這個(gè)數(shù)字465132%100000進(jìn)行操作時(shí)獲得65132將最高位刪除
后面不斷進(jìn)行 MaxBit / 10 來獲得每一位的最高位,并且再獲得之后再次丟棄
知道輸入的數(shù)字等于0結(jié)束。

③數(shù)字逐位從低位到高位輸出

void PrintFromMin(int number) {int PutNumber;while (number != 0){PutNumber = number % 10;printf("%d\t",PutNumber);number /= 10;} }

從低位到高位的輸出,我們先通過取余獲得最后一位:
例如 465132 % 10 得到 2 然后利用 465132 / 10 去除最后以為 讓最后一位變成3
不斷循環(huán)操作 知道輸入的數(shù)字變成0

④數(shù)字逆序輸出

int Reverse(int number) {int PutNumber;int Multiply = 1;int Reserse = 0;int Length = NumberLength(number);int MaxBit = pow(10, Length - 1);while (number != 0){PutNumber = number / MaxBit;Reserse += PutNumber * Multiply;number %= MaxBit;MaxBit /= 10;Multiply *= 10;}return Reserse; }

上述過程相對(duì)于從低位到高位輸出來說,只是在甩掉數(shù)字之前把數(shù)字保留下來
然后進(jìn)行以下操作:
例如:輸入465132
465132 % 10 獲得 2 然后操作2*1
甩掉2之后 46513 % 10 獲得 3 然后操作3?10 然后和前面2×1相加
甩掉3之后 4651 % 10 獲得 1 然后操作1×100 然后和前面2×1 3?10 相加
以此類推 知道輸入的數(shù)字變成0 退出 然后輸出加起來的數(shù)字

數(shù)字的按位輸出操作,逆序操作,輸出位數(shù)的操作,難度不大,而且邏輯過程比較容易理解,所以就不用圖解動(dòng)畫來展示,每一個(gè)操作,上面都給了一個(gè)例子實(shí)現(xiàn)操作的過程。

總結(jié)

以上是生活随笔為你收集整理的输出整数的位数、按位输出(两种)以及逆序输出的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。