十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
計(jì)算喚姿時(shí),需要乘以100,8位的變量,就檔老不夠用了。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比射陽網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式射陽網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋射陽地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。
unsigned int j;
unsigned char k, l, m, n = P1; //從P1口讀到的8位二進(jìn)制數(shù)
n = 168; // 168 / 255 = 0.65
j = 100 * n; //0 ~ 25500,需要用16位數(shù)的變量
k = j / 25500; //行鏈升整數(shù)0~1
j = j % 25500; //余數(shù)0~25499,需要用16位數(shù)的變量
l = j / 2550; //十分位0~9
m = (j % 2550) / 255; //百分位0~9
//k=0, l=6, m=5.
8表示數(shù)據(jù)位廳腔寬為8位。
%8d是printf函數(shù)的輸出格式控制符,%d表示按照有符號(hào)十進(jìn)制整數(shù)輸出,8表示數(shù)據(jù)位寬為8位,扮御衫如果數(shù)據(jù)長度=8則按照原來的數(shù)據(jù)位寬輸出,如果8則用空格填充,默認(rèn)右對(duì)齊。
所以%8d的意思是按照有符號(hào)10進(jìn)制整數(shù)格式輸出,數(shù)據(jù)位寬為8,右對(duì)齊。
擴(kuò)展資料:
printf函數(shù)定義
函數(shù)聲明
int printf(char *format...);
調(diào)用格式
printf("格式化字符串", 參量表);
格式化字符串包含三種對(duì)象,分別為:
1、字符串常量。
2、格式控制字符串。
3、轉(zhuǎn)義字符。
字符串常量原樣輸出,在顯示中起提示作用。輸出表列中給出了各個(gè)輸出項(xiàng),要求格式控制字符串和各輸拆消出項(xiàng)在數(shù)量和類型上應(yīng)該一一對(duì)應(yīng)。其中格式控制字符串是以%開頭的字符串,在%后面跟有各種格式控制符,以說明輸出數(shù)據(jù)的類型、寬度、精度等。
參考資料來源:百度百科-printf
int?fun(int?day)?????????????????????//把要轉(zhuǎn)換的數(shù)字作為參數(shù)?
{int?y,m,d;???????????埋清???????????????//y,m,d分別帶祥代表年月日
y=day/10000;????????????????????????//除以10000,就是截掉后面4位,得到年份
m=(day/100)%100;????????????????????//除以100就是截掉后面2位,再取余得到月份?
d=day%100;??????????????????????????//用100取余得到最后兩位,得到日期?蠢液搏
printf("%4d-%02d-%02d\n",y,m,d);}???//輸出年月日,不足部分補(bǔ)0?
int?main()
{fun(20181203);
system("PAUSE");????????????????????//暫停屏幕,以看清結(jié)果
return?0;}??????????????????????????//結(jié)束程序
我貼兩個(gè)頭文件
ADC0832.h
#ifndef _ADC0832_H_
#define _ADC0832_H_
#define uchar unsigned char
#define uint unsigned int
#define channel_0 0x02 //單通道0輸入選擇
#define channel_1 0x03 //單通道1輸入選擇
/***************************************************/
/* 位定義 */
/***************************************************/
sbit ADC_DI = P2^3; //數(shù)據(jù)輸入輸出復(fù)用
sbit ADC_DO = P2^3; //DI和DO端都接在P1.0
sbit ADC_CLK= P2^4; //時(shí)鐘端
sbit ADC_CS = P2^5; //片選端
sbit ACC0=ACC^0; //通道與輸入方式控制字
sbit ACC1=ACC^1; //通道與輸入方式控制字
/***************************************************/
/* 函數(shù)聲明 方便查閱 */
/***************************************************/
//uchar ADC_read(uchar mode); //AD采集
//mode可選 channel_0(通道0) channel_1(通道1) 或 其他方式
/********************************************************************/
/* 啟動(dòng)ADC轉(zhuǎn)換 */
/********************************************************************/
void ADC_start()
{
ADC_CS=1; //一個(gè)轉(zhuǎn)換周期開始
_nop_();
ADC_CLK=0;
_nop_();
ADC_CS=0; //CS置0,片選物汪有效
_nop_();
ADC_DI=1; //DI置1,起始位
_nop_();
ADC_CLK=1; //第一個(gè)脈沖
_nop_();
ADC_DI=0; //在負(fù)跳變之前加一個(gè)DI反轉(zhuǎn)操作
_nop_();
ADC_CLK=0;
_nop_();
}
/********************************************************/
/* 函數(shù)功能: AD轉(zhuǎn)換 */
/* 選擇輸入通道,輸入信號(hào)的模式《單端輸入,或差罩盯仔分輸入》 */
/* 入口參數(shù): mode(采集通道或方式) */
/* 返回值 : ACC (電壓轉(zhuǎn)換后的數(shù)字量) */
/********************************************************/
uchar ADC_read(uchar mode)
{
uchar i;
ADC_start(); //啟動(dòng)轉(zhuǎn)換開始
ACC=mode;
ADC_DI=ACC1; //輸出則嫌控制位1,DI=1,單通道輸入,DI=0,差分輸入。
ADC_CLK=1; //第二個(gè)脈沖
_nop_();
ADC_DI=0;
ADC_CLK=0;
_nop_();
ADC_DI=ACC0; //輸出控制位0,DI=0,通道0輸入,DI=1,通道1輸入。
ADC_CLK=1; //第三個(gè)脈沖
_nop_();
ADC_DI=1;
ADC_CLK=0; //輸入模式和通道號(hào)已經(jīng)選擇完。
ADC_CLK=1; //第四個(gè)脈沖
ACC=0;
for(i=8;i0;i--) //讀取8位數(shù)據(jù)
{
ADC_CLK=0; //脈沖下降沿
ACC=ACC1;
ACC0=ADC_DO; //讀取DO端數(shù)據(jù)
_nop_();
_nop_();
ADC_CLK=1;
}
ADC_CS=1; //CS=1,片選無效。
return(ACC);
}
#endif
1602.H
#ifndef _1602_H_
#define _1602_H_
#define uchar unsigned char
#define uint unsigned int
/*******************************************/
/* 位定義 */
/*******************************************/
sbit RS=P2^0; //
sbit RW=P2^1; //
sbit E=P2^2; //
/*******************************************/
/* 函數(shù)聲明 方便查閱 */
/*******************************************/
//void init(); //1602初始化
//void zhiling(uchar dat); //寫命令 第一行地址0x80~0x8f 第二行地址0xc0~0xcf
//void shuju(uchar dat); //寫數(shù)據(jù) 顯示為ASCLL碼字符
/************************************************/
/* 函數(shù)功能: 延時(shí)子函數(shù) */
/* 入口參數(shù): ms */
/************************************************/
void delay_1602(uint ms)
{
uchar time;
while(ms--)
{
for(time = 0; time 125; time++);
}
}
/********************************************/
/* 函數(shù)功能: 寫命令函數(shù) */
/* 入口參數(shù): dat(待寫入的數(shù)據(jù)) */
/********************************************/
void zhiling(uchar dat)
{
E=0;RS=0;RW=0; //寫命令
E=1;
P0=dat;
delay_1602(10); //延時(shí) 5ms
E=0;
delay_1602(10); //延時(shí) 5ms
}
/********************************************/
/* 函數(shù)功能: 寫數(shù)據(jù)函數(shù) */
/********************************************/
void shuju(uchar dat)
{
E=0;RS=1;RW=0; //寫數(shù)據(jù)
E=1;
P0=dat;
delay_1602(10); //延時(shí) 5ms
E=0;
delay_1602(10); //延時(shí) 5ms
}
/********************************************/
/* 函數(shù)功能: 1602初始化函數(shù) */
/********************************************/
void init() //初始化
{
zhiling(0x01); //清屏
zhiling(0x38); //功能設(shè)置
zhiling(0x0e); //開/關(guān)顯示設(shè)置
zhiling(0x06); //輸入方式設(shè)置(左移)
}
#endif
你要的ASC碼很簡單,這么做,
zhiling(0x80);//地址
shuju(6+'0');//假如你要顯示6,6+'0'也就是6加上0的ASC碼自然就轉(zhuǎn)換成6的ASC碼了
如果是66
你在顯示前線換算 66/10 和 66%10,就會(huì)分別得到10位和個(gè)位,樓主自己舉一反三了。