16進位與10進位轉化程序

2021-01-08 電子產品世界

16進位轉換算成10進位程序

本文引用地址:http://www.eepw.com.cn/article/171053.htm


unsigned char d[10]; //用於顯示的10位顯示緩存

//========================================================
//16進位to10進位輸出子程序:顯示數據,起始位,結束位,有無小數點
//========================================================
void output(unsigned long dd,unsigned char s,unsigned char
e,unsigned char dip) {
unsigned long div;
unsigned char tm[8],i,j;
div=10000000;
for (i=0;i8;i++) {
tm[i]=dd/div;
dd%=div;
div/=10;
}
for (i=0;i6;i++) {
if (tm[i]!=0) break;
tm[i]=nul;
}
tm[5]|=dip; //小數點控制,請看「串行LED數碼管顯示驅動程序」
j=7;
for (i=s;ie;i++) {
d[i]=tm[j];
j--;
}
}

//把顯示位5-9位的10進位數轉換成為16進位數
unsigned int input(void) {
unsigned int dd,dat;
dd=10000;dat=0;
for (i=5;i10;i++) {
dat+=dd*temp;
dd/=10;
}
return(dat);
}
/* 89C51系列CPU編程器接收CPU程序*/

#i nclude reg51.h>
#i nclude intrins.h>
#i nclude absacc.h>

#define e 8
#define p 9
#define l 10

sbit led=P3^2;
sbit p27=P2^7;
sbit p26=P2^6;
sbit p36=P3^6;
sbit p37=P3^7;
sbit rst=P3^3;
sbit ale=P3^5;
sbit vpp=P3^4;

bit b_break;
unsigned int adds;


// 13.8mS
void int_t0(void) interrupt 1 {
TH0=-100;
b_break=1;
}

void wait(unsigned char w) {
unsigned int t=w*184;
b_break=0;
TL0=-t%256-1;TH0=-t/256;
while (b_break==0) {}
}

void nop(void) {
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
}

unsigned char command(void) {
TH0=-100;b_break=0;
while (RI==0) {if (b_break==1) return(0);}
RI=0;
return(SBUF);
}

void earsure(unsigned char cpu) {
switch (cpu) {
case 1: //89C51
case 2:rst=p26=1;p27=p36=p37=0;nop();vpp=1;nop();
ale=0;wait(110);ale=1;nop();
break;
case 3:
case 4:break;
case 5:
case 6:break;
}
}

void program(unsigned char cpu) {
unsigned int bdata adds=0;
unsigned char d;
switch (cpu) {
case 1: //89C51
case 2:
p36=p37=1;rst=1;
while (1) {
TH0=-100;b_break=0;
while (RI==0) {if (b_break==1) return;}
RI=0;
d=SBUF;
//address
P0=adds%256;
P2=adds/256;
p27=1;
//data
P1=d;
nop(); //48clcl
//vpp
vpp=1;
nop(); //48clcl
//ale
ale=0;
wait(1);//100uS
ale=1;
nop(); //10uS
vpp=0;
nop(); //48clcl
p27=0;
nop(); //48clcl
P1=0xff;
TH0=-100;b_break=0;
while (d!=P1) {if (b_break==1) return;} //data
polling
SBUF=d;
adds++;
}
break;
case 3:
case 4:
case 5:
case 6:break;
}
}

void lock(unsigned char cpu) {
unsigned char i;
switch (cpu) {
case 1: //89c51
case 2:
//lock 1
rst=p26=p36=p27=p37=1;nop();
vpp=1;
nop();
ale=0;
// for (i=0;i6;i++) wait(100);
wait(1);
ale=1;
nop();
vpp=0;
nop();

//lock 2
rst=p26=p27=1;p36=p37=0;nop();
vpp=1;
nop();
ale=0;
// for (i=0;i6;i++) wait(100);
wait(1);
ale=1;
nop();
vpp=0;
nop();

//lock 3
rst=p26=p36=1;p27=p37=0;nop();
vpp=1;
nop();
ale=0;
// for (i=0;i6;i++) wait(100);
wait(1);
ale=1;
nop();
vpp=0;
nop();
break;
case 3:
case 4:
case 5:
case 6:break;
}
}

void main(void) {
unsigned char disp,flash,temp,cpu;
EA=1;
SCON=0xd8;PCON=0x80;
TMOD=0x21;
TL1=TH1=0xff;TR1=1;
TH0=-100;ET0=TR0=1;

flash=0x80;

相關焦點

  • 16進位轉換算成10進位程序
    16進位轉換算成10進位程序本文引用地址:http://www.eepw.com.cn/article/172812.htmunsigned char d[10]; //用於顯示的10位顯示緩存//========
  • 16進位數轉換成10進位整數的VC++程序
    二進位數據很少直接用在Visual C++++程序中,因為C++通常被視作高級語言。然而,對於要在兩類不同設備間傳輸信息的通信網絡而言,二進位數或十六進位數的傳輸過程比十進位數更為簡單。
  • 16進位轉10進位
    本文引用地址:http://www.eepw.com.cn/article/150241.htm16進位數字表示(0 --- F( 0 到15))0 1 2 3 4 5 6 7 8 9 A(10) B(11) C(12) D(13) E(14
  • 編輯器、進位與進位轉化
    十進位:數碼:0至9基數:10權:(12345)10位1的權:1 1*10(1-1)位2的權:10 1*10(2-1)位3的權:100 1*10(3-1)位4的權:1000 1*10(4-1
  • 10進位轉16進位(採用移位實現)
    >#include <string.h>//#define print(format,...) fprintf(stderr,format,##__VA_ARGS__)//#define print1(format,args...) fprintf(stderr,format,##args)/* 功能:     該函數採用移位實現10
  • 二進位、八進位、十進位與十六進位
    (10010)2=(1x24+0x23+0x22+1x21+0x20)10=(16+0+0+2+0)10=(18) 10【例2】將二進位數(0.10101)2轉化為十進位數。(10010)2=(22)8=( 18 ) 10=( 12 )16(0.10101)2=(0.52)8=(0.96875)10=(0.A8)16四、 八進位轉化成其他進位
  • C# 16進位轉換10進位相關函數詳解
    C# 16進位轉換10進位相關函數詳解 在C#中可以對整型運算對象按位進行邏輯運算,同時也可以實現C# 16進位轉換10進位,C#10進位轉換2進位等功能。
  • 進位制教學,了解進位之間的原理及轉化
    例中的10^3,10^2,10^1,10^0,10^-1,10^-2則是數位對應的權值,它們是與數位對應的,可以觀察到,權值表示為指數形式。其中10為基數。此10與"十進位"中的。十"是對應的。我們可以容易地得出一般性的結論。即十進位數表達形式其實是係數按照所在數位對應的權值大小,依降序排列而成的係數序列。係數同時也解釋為表達數字的基本符號,那麼在十進位中,這樣的係數總共有多少呢?
  • EV3關於10進位轉換2進位的詳解
    哈咯各位大家好之前突發奇想想做一個關於十進位轉化成二進位的想法,在這裡給大家講解一下。關於數字有多進位的,十進位、二進位、三進位、八進位、十六進位....等等。對我們最熟悉的莫過於十進位和二進位了,接下來給大家講解下如何實現將十進位轉化為二進位。
  • 十進位數與二進位數的相互轉化
    最近,高二年級中有n多個同學問我:「老師,怎樣將十進位數轉化為二進位數呢?如果轉化為八進位數呢?」
  • 二進位、八進位、十進位和十六進位數之間的轉換方法
    十進位轉化為八進位或十六進位,只需將除數或乘數換成8或16就可以了。例如:(1111.11)2 = 1×23+1×22+1×21+1×20+1×2-1+1×2-2 = 15.75(A10B.8)16 = 10×163+1×162+0×161+11×160+8×16-1= 41227.54)十進位數轉化為二進位數十進位數的整數部分和小數部分在轉換時需作不同的計算,分別求值後再組合。
  • 計算機的語言——二進位,十進位、八進位、十六進位與二進位之間的轉換
  • 10、進位轉換:二進位、八進位、十六進位、十進位之間的轉換
    再如,將十六進位數字 9FA8C 轉換成十進位:9FA8C = 9×164 + 15×163 + 10×162 + 8×161 + 12×160 = 653964(十進位)從右往左看,第1位的位權為 160=1,第2位的位權為 161=16,第3位的位權為 162=256,第4位的位權為 163=4096,第5位的位權為 164=65536 …… 第n位的位權就為
  • 二進位、十進位、八進位、十六進位間的相互轉換函數
    二進位、十進位、八進位、十六進位間的相互轉換函數1、輸入任意一個十進位的整數,將其分別轉換為二進位、八進位、十六進位。2、程序代碼如下:#include<iostream>using namespace std;int main(){int num;char a[39
  • 二進位,八進位,十進位,十六進位之間的轉換
    15就要進11*163+1*161+1*160=4096+16+1=4113當然其他進位轉換成10進位是最簡單的了,我想聰明的你肯定會了。>十進位到八進位:除8取餘數 最後把餘數倒過來同時我們也可以先將十進位轉換成二進位,然後將二進位又轉換成八進位比如:2456 轉化成八進位數字:46302456/8=307,餘0;307/8=38,餘3;38/8=4
  • 進位轉換
    個、十、百、千、萬···,以10為基數,冪次從0開始,每一位的權重分別是10^0,10^1,10^2,10^3,10^4···,所以 12345 = 1*10^4 + 2*10^3 + 3*10^2 + 4*10^1 + 5*10^0。除十進位外,我們常用的進位還有十六進位,八進位,當然最重要的就是二進位。
  • 二進位、十進位和十六進位
    書寫二進位數據時需加前綴 0b,每一位的值只能是 0 或 1。十六進位就是把 4 個二進位位組合為一位來表示,於是它的每一位有 0b0000 ~ 0b1111 共 16 個值,用 0 ~ 9 再加上 A ~ F(或 a ~ f)表示,那麼它自然就是逢十六進位了,它本質上同二進位是一樣的,是二進位的一種縮寫形式,也是我們程序編寫中常用的形式。
  • 二進位、八進位和十六進位之間轉換
    十進位是在人類社會發展過程中自然形成的,它符合人們的思維習慣,例如人類有十根手指,也有十根腳趾。進位也就是進位制。進行加法運算時逢X進一(滿X進一),進行減法運算時借一當X,這就是X進位,這種進位也就包含X個數字,基數為X。十進位有 0~9 共10個數字,基數為10,在加減法運算中,逢十進一,借一當十。
  • 使用Swing製作進位轉化器
    如果二進位11001和十六進位FFEE轉化成十進位,按照上述公式展開如下:11001的十進位:1*24+1*23+0*22+0*21+1*0=16+8+0+0+1=25FFEE的十進位:15*163+15*162+14*161+140=61440+3840+224+14=65518其它進位向十進位進行轉化也是按照這個展開公式進行。
  • 關於二進位、十進位、八進位、十六進位數據轉換計算方法詳細總結
    下面在安靜的音樂中,讓我們開始學習吧在我們接觸編程知識時,總會接觸有關進位轉換的知識,最常見的就是10進位與二進位或十六進位之間的轉換,很多時候我們總會遺忘,雖然現在也出現了很多可以直接使用的網絡在線的進位轉換工具,但考試中,我們就要靠自己通過公式進行運算了。