編程2位
㈠ 編程從鍵盤輸入一個2位的十六進制整型數據,將這個十六進制整型數轉換為二進制
/*這題非常簡單,你要學過數據結構就非常容易*/
/*我用個棧來幫你做*/
/*此棧數據項為整型,只定義初始化棧,入棧,出棧操作,輸出棧中元素操作*/
#include<iostream.h>
#define MaxSize 100
typedef struct {
int data[MaxSize];
int top;
}Stack;//順序棧,也可用鏈棧
void InitStack(Stack &S)//初始化棧
{
S.top=-1;
}
int push(Stack &S,int x)//入棧
{
if(S.top==MaxSize)
return 0; //棧滿
else{
S.top++;
S.data[S.top]=x;
return 1;
}
}
int pop(Stack &S,int &x)//出棧
{
if(S.top==-1)
return 0; //棧空
else{
x=S.data[S.top];
S.top--;
return 1;
}
}
void display(Stack &S)
{
int x;
while(S.top!=-1)
{
pop(S,x);
cout<<x<<' ';
}
cout<<endl;
}
//應用程序
void func(int n,int m)//n為十進制數,m為2,8,或16
{
Stack S;
InitStack(S);
while(n!=0)
{
push(S,n%m);
n=n/m;
}
display(S);
}
void main()//這用來測試func
{
int n=12,m=2;
func(n,m);
m=8;
func(n,m);
m=16;
func(n,m);
}
//已在vc2005中測試過,可用,至於16進制時怎麼輸出A,B,..,F,吃過飯我再來貼
㈡ 匯編編程 2位十進制數的四則運算
; 本程序在MASMPlus 1.2集成環境下通過編譯,經過調試,運行正確。
Code Segment
Assume CS:Code,DS:Code
; -------------------------------------
; 功能:顯示指定地址(Str_Addr)的字元串
; 入口:
; Str_Addr=字元串地址(要求在數據段)
; 用法: Output Str_Addr
; 用法舉例:Output PromptStr
Output MACRO Str_Addr
lea dx,Str_Addr
mov ah,9
int 21h
EndM
; -------------------------------------
ASCII_Binary MACRO ;將兩位數字的ASCII碼轉換成二進制數
mov dl,10
lodsb
and al,0fh
mul dl
mov dx,ax
lodsb
and al,0fh
add al,dl
stosb
EndM
; -------------------------------------
; 功能:輸入兩位十進制數,將其保存在指定的內存單元
; 入口:es:di=保存輸入的數字首地址
; 出口:轉換後的二進制數保存在di所指的單元
Input_Dec Proc Near
push cx
push bx
cld
mov cx,2
@@Input_Dec: mov ah,7 ;從鍵盤接受一個字元
int 21h
cmp al,'0'
jb @@Input_Dec ;若低於數字'0',重新輸入
cmp al,'9'
ja @@Input_Dec ;若高於數字'9',重新輸入
stosb ;保存
mov ah,0eh ;顯示這個數字
xor bh,bh
int 10h
loop @@Input_Dec ;接受下一個數字
pop bx
pop cx
ret
Input_Dec EndP
; -------------------------------------
; 功能:把AX中的二進制無符號數轉換成顯式的十進制ASCII碼,並送顯示屏顯示
; 入口:AX=二進制數
; 出口:在當前游標位置顯示轉換後的ASCII碼數字
Unsi_Dec_ASCII Proc Near
push dx
push bx
push di
mov bx,10
lea di,@@Temp_Save[5]
mov BYTE PTR [di],'$'
dec di
cld
@@Divide: xor dx,dx
div bx
or dl,30h
mov [di],dl
dec di
test ax,ax
jnz @@Divide
inc di
push di
pop dx
mov ah,9
int 21h
pop di
pop bx
pop dx
ret
@@Temp_Save db 6 p(?)
Unsi_Dec_ASCII EndP
; -------------------------------------
; 功能:鍵盤輸入一個字元,若輸入的是'y'或'n'(不分大小寫),則顯示並返回
; 入口:無
; 出口:若輸入的是'y',進位標志置位;若輸入的是'n',進位標志復位。
Yes_or_No proc Near
push dx
push ax
@@Input_Chr: mov ah,7 ;不帶回顯的鍵盤輸入
int 21h
mov dl,al
and al,0dfh
cmp al,'Y'
jnz $+5
stc
jmp $+7
cmp al,'N'
jnz @@Input_Chr
clc
mov ah,2
int 21h
pop ax
pop dx
ret
Yes_or_No Endp
; -------------------------------------
; 加法運算
Addition Proc Near
mov ax,WORD ptr Number
add al,ah
xor ah,ah
call Unsi_Dec_ASCII ;顯示和
ret
Addition EndP
; -------------------------------------
; 減法運算
Subtration Proc Near
mov ax,WORD ptr Number
sub al,ah
xor ah,ah
call Unsi_Dec_ASCII ;顯示差
ret
Subtration EndP
; -------------------------------------
; 乘法運算
Multiple Proc Near
mov ax,WORD ptr Number
mul ah
call Unsi_Dec_ASCII ;顯示乘積
ret
Multiple EndP
; -------------------------------------
; 除法運算
Division Proc Near
mov ax,WORD ptr Number
mov bl,ah
xor ah,ah
div bl
push ax
xor ah,ah
call Unsi_Dec_ASCII ;顯示商數的整數部分
mov cx,6 ;寫字元次數
mov al,'.'
mov ah,0eh
@@Write_Dot: int 10h
loop @@Write_Dot
pop ax
xchg ah,al
or al,30h
mov ah,0eh
int 10h
ret
Division EndP
; -------------------------------------
prompt_Str db 13,10,10,'Please input an arithmetical expression:',13,10,'$'
Contin_Str db 13,10,10,'Continue(Y/N)?$'
Number db ?,? ;操作數存儲單元
Operators db '+-*/' ;運算符
Procere dw Addition,Subtration,Multiple,Division
Press_Key db 7,13,10,10,'The complated. Press any key to exit...$'
Start: push cs
pop ds
push cs
pop es
Input_Expre: Output prompt_Str ;提示輸入算術表達式
lea di,Arith_Expre ;算術表達式緩沖區地址
call Input_Dec ;輸入兩位十進制數,將其保存在指定的內存單元
Input_Oper: mov ah,7
int 21h
cmp al,'+'
jz Store_Oper
cmp al,'-'
jz Store_Oper
cmp al,'*'
jz Store_Oper
cmp al,'/'
jnz Input_Oper
Store_Oper: stosb ;保存
mov ah,0eh ;顯示這個數字
xor bh,bh
int 10h
call Input_Dec
mov al,'='
mov ah,0eh
xor bh,bh
int 10h
lea si,Arith_Expre
lea di,Number ;操作數存儲單元地址
ASCII_Binary ;將兩位數字的ASCII碼轉換成二進制數
inc si
ASCII_Binary
mov al,BYTE ptr Arith_Expre[2] ;取運算符
mov cx,4
lea di,Operators
mov bx,di
repnz scasb
xchg di,bx
sub bx,di
dec bx
shl bx,1
call Procere[bx] ;調用相應的運運算元程序
Output Contin_Str
call Yes_or_No
jc Input_Expre
; -------------------------------------
Exit_Proc: Output Press_Key ;提示操作完成,按任意鍵結束程序
mov ah,1
int 21h
mov ah,4ch ;結束程序
int 21h
Arith_Expre: ;算術表達式緩沖區
Code ENDS
END Start ;編譯到此結束
㈢ C++編程2位保留小數點
cout<<setiosflags(ios::fixed)<<setprecision(2)<<s<<endl;
注意包含頭文件 #include <iomanip.h>
㈣ 編程實現倒計時的秒錶,2位LED數碼管顯示,延時採用軟體延時的方法。求大神!
#include "reg51.h"
void delay1s();
void display(unsigned char x);
void main()
{
unsigned char i;
while(1)
{
for(i=99;i>0;i--)
{
display(i);
delay1s();}
}
}
void delay1s()
{
unsigned char i,j,k;
for(i=10;i>0;i--)
for(j=200;j>0;j--)
for(k=250;k>0;k--);
}
void display(unsigned char x)
{
unsigned char dispcode[10]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,0x7f,0x6f};
P2=dispcode[x/10];
P1=dispcode[x%10];
}
㈤ c語言怎樣輸出2位小數
c語言怎樣輸出2位小數的方法。
如下參考:
1.首先點擊打開桌面上的vc++6.0軟體,如下圖所示。
㈥ C語言編程是如何用指針指向二位數組的某個為
如果,你需要讓指針指向哪個數,直接把這個數的地址,賦給該指針,就行了。
比如:int *p1,*p2;
int a[2][3]={{1,2},{3,4}};
p1=&a[0][1];//p1指向2
p2=&a[1][0];//p2指向3
㈦ 編程 把一個2位數交換十位與個位的位置
#include<stdio.h>
intmain(void)
{
intx,y;
printf("輸入2位整數:");
scanf("%d",&x);
y=x/10+x%10*10;
printf("輸出結果:%d ",y);
return0;
}