久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 13804|回復: 4
打印 上一主題 下一主題
收起左側

C語言編程:如何分離一個多位數數字

[復制鏈接]
跳轉到指定樓層
樓主
摘要: 數碼管是電子設計之中最常用的顯示元器件,但是數碼管一次只能顯示一個數字,如果要顯示多位數字只能使用多個數碼管并且要把數字拆分開,一位一位的送到數碼管中才能顯示,今天就介紹把一個多位數字拆分的方法。 ... ...




數碼管是電子設計之中最常用的顯示元器件,但是數碼管一次只能顯示一個數字,如果要顯示多位數字只能使用多個數碼管并且要把數字拆分開,一位一位的送到數碼管中才能顯示,今天就介紹把一個多位數字拆分的方法。

把一個多位數拆分要用到兩個運算符“/”除法運算符和“%”取余運算符:

/:得到的運算結果是整數,68/10=6;
%:得到的運算結果是余數,68%10=8;

是不是有點意思。

比如要顯示524這個三位數,下面講解這個數字的拆分算法。

百位:524/100 = 5;
十位:524%100=24;24/10=2;
各位:524%100=24;24%10=4;

通過這個例子是不是找出規律來了?簡寫入下:

百位:524/100 = 5;
十位:524%100/10=2;
各位:524%100%10=4;

再舉一個四位數的例子,拆分6893如下:

千位:6893/1000=6;
百位:6893%1000/100 = 8;
十位:6893%1000%100/10 = 9;
各位:6893%1000%100%10 = 3;

是不是分離出來了?這時候就可以把數據送到數碼管顯示了。

以上分離方法只是眾多分離方法中的一種,在使用的時候可以在紙上簡單算一下,結果就很容易出來了。想要了解數碼管是如何工作的,請點擊這里




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:692711 發表于 2020-2-27 08:43 來自手機 | 只看該作者
接著在往下寫點吧謝謝您   我在回來看  我咋回來我是路癡
回復

使用道具 舉報

板凳
ID:535242 發表于 2020-2-27 21:31 | 只看該作者
怎么感覺公式每總結出來
回復

使用道具 舉報

地板
ID:407089 發表于 2020-2-28 09:33 | 只看該作者
提供一個正整數的數碼管解決方案,供參考。
  1. /*
  2.   本程序是在數碼管上顯示正整數的例程,顯示數字長度不超過8位(需要定義無符號長整型變量)
  3. */

  4. #include <reg52.h>
  5. #include <math.h>
  6. #include <stdlib.h>
  7. #include <stdio.h>

  8. typedef unsigned char uint8;        //8位無符號型
  9. typedef unsigned char uchar;        //8位無符號型
  10. typedef unsigned int uint16;
  11. typedef unsigned long uint32;

  12. #define DATA P0
  13. sbit KEY_S2 = P3^0;                //S2獨立按鍵
  14. sbit KEY_S3 = P3^1;                //S3獨立按鍵
  15. sbit seg_sel = P2^6;
  16. sbit bit_sel = P2^7;

  17. //共陰極數碼管0-9編碼
  18. uchar code seg_tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  19. uchar code bit_tab[] = {0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};

  20. //將要被顯示的數字(只要不是大于8位的正整數均可)
  21. uint32 birthday = 508;

  22. //用于保存數字對應數碼管編碼的數組
  23. uchar num_code[8] = {0};

  24. void delay(uint16 num)
  25. {
  26.         uint16 x,y;
  27.         for(x=num; x>0; x--) for(y=110; y>0; y--){}
  28. }

  29. //拆分整數到num_code數組
  30. void int2code(uint32 inum)
  31. {
  32.         uint8 i=0, n;
  33.         uint32 tmp = inum;

  34.         for(i=0; i<8; i++)
  35.         {
  36.                
  37.                 if(tmp>0)
  38.                 {       
  39.                         n = tmp % 10;
  40.                         tmp = (tmp-n) / 10;
  41.                         num_code[7-i] = seg_tab[n];
  42.                 }else{
  43.                         num_code[i] = 0x00;
  44.                 }                                    
  45.         }
  46. }

  47. //8位數碼管顯示函數
  48. void display(void)
  49. {
  50.         uint8 j = 0;
  51.         for (j=0; j<8; j++)
  52.         {
  53.                 //移位
  54.                 bit_sel = 1;
  55.                 DATA = bit_tab[j];
  56.                 bit_sel = 0;

  57.                 //顯數
  58.                 seg_sel = 1;
  59.                 DATA = num_code[j];
  60.                 delay(1);
  61.                
  62.                 //消影(共陽極則為0xff,就是讓所有數碼管暫時不亮)
  63.                 DATA = 0x00;
  64.                 seg_sel = 0;
  65.         }
  66. }

  67. void main(void)
  68. {

  69.         while(1)
  70.         {
  71.                 int2code(birthday);
  72.                
  73.                 display();
  74.                
  75.                 if (KEY_S2==0)
  76.                 {
  77.                         delay(10);
  78.                         if (KEY_S2==0){
  79.                                 birthday++;
  80.                         }
  81.                         while(!KEY_S2);
  82.                 }
  83.         }
  84. }
復制代碼



回復

使用道具 舉報

5#
ID:476527 發表于 2020-2-28 13:48 | 只看該作者
分離個位只需要直接%10就行了,為何還要先%100再%10?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 丁香综合| 亚洲av毛片 | 又黄又色 | 日韩精品激情 | 亚洲欧洲中文日韩 | 久久国产精品视频免费看 | 欧美一级欧美三级在线观看 | www.99热.com| 日韩久久久久久 | 国产日韩精品一区二区 | 999久久久 | 福利社午夜影院 | 超碰操 | 天天操 夜夜操 | 国产91久久精品一区二区 | 成人午夜免费视频 | 九九九视频在线观看 | 国产视频久久 | 99成人精品 | 亚洲美女av网站 | 美女一级黄| av网站在线看 | 亚洲精品久久久蜜桃 | www.色综合| 日本视频在线播放 | 亚洲精品免费在线观看 | 色婷婷久久久亚洲一区二区三区 | 久久99这里只有精品 | 日韩有码在线播放 | 51ⅴ精品国产91久久久久久 | 亚洲精品视频在线观看视频 | 99这里只有精品视频 | 99精品久久99久久久久 | 久久国产秒 | 日本免费一区二区三区 | 韩日精品视频 | 欧美一区二区三区在线视频 | 欧美成人aaa级毛片在线视频 | 欧美日韩不卡合集视频 | 亚洲国产二区 | 国产女人与拘做受免费视频 |