1樓:熊滔
編語言寫
;類似的題目有許多種做法,這次換了種方法...
;用ma** 5.0 編譯通過。(ctrl+c結束);執行結果示範如下:
;aa ====>>> 10101010
;bb ====>>> 10111011
;cc ====>>> 11001100
;dd ====>>> 11011101
;ee ====>>> 11101110
;ff ====>>> 11111111
;af ====>>> 10101111
;^cdata segment
crlf db 0dh,0ah,'$' ;輸出回車換行f1 db 0 ;定義輸入的數字位數標誌,為0表示輸入的是個位temp db 0 ;輸入的數
mess1 db ' ====>>> $'
s1 db '0123456789abcdefabcdef'
ll equ $-s1
data ends
code segment
assume cs:code, ds:datamain proc far
start:
push ds
xor ax,ax
push ax
mov ax,data
mov ds,ax
push ds
pop es
;-------------------------ini: ;初始化
mov al,0
mov f1,al
mov temp,al
n1: ;輸入字元起始位
mov ah,8
int 21h
cmp al,0dh ;是回車符則輸出結果jnz goon
mov bl,temp
jmp output
goon:
call c_1 ;檢測輸入字元是否合法
jnz n1 ;不合法,直接重新輸入
push ax ;顯示輸入的字元
mov dl,al
mov ah,2
int 21h
pop ax
cmp al,'a' ;以下將輸入的字元轉換成數字jb be1a
sub al,'a'-10
jmp nn1
be1a:
cmp al,'a'
jb be1
sub al,'a'-10
jmp nn1
be1:
sub al,'0'
nn1:
mov bl,f1 ;檢測輸入的是1位還是2位cmp bl,0
jnz w2
mov temp,al ;是1位
inc f1 ;置1位標誌
jmp n1 ;跳轉輸入下一個數位
w2: ;輸入的是第2位數
mov bl,temp ;將上一位輸入的數乘以10h(左移4位),再加上這次輸入的數
mov cl,4
shl bl,cl
add bl,al
output: ;將數字輸出提示資訊,'====>>>'
mov ah,9
mov dx,offset mess1
int 21h
mov cl,8 ;設定迴圈次數
disp_n:
rol bl,1 ;左移一位
jc dd1
mov dl,'0' ;無進位顯示0
jmp disp
dd1:
mov dl,'1' ;有進位顯示1
disp:
mov ah,2
int 21h
loop disp_n
mov ah,9
mov dx,offset crlf ;輸出一個回車換行int 21h
jmp ini ;跳轉輸入下一個數
main endp
;***************===
c_1 proc near ;檢測輸入的字元是否合法子程式mov di,offset s1
mov cx,ll
repnz scasb
ret;返回:nz=輸入的值不在表內 zr=輸入的值在表內c_1 endp
;**********=
code ends
end start
2樓:匿名使用者
你是哪位~~~謝謝你哈,今天我們也在做這個實驗~~~~悠嘻
8位2進位制數用16進製表示後 00h~ffh 那個h是什麼意思??
3樓:匿名使用者
b:二進位制
d:十進位制(預設不寫)
o:八進位制
h:十六進位制
你以後見到了要自己區分
這是基本知識
4樓:匿名使用者
是一種習慣性的字尾寫法,用以說明這個數字的進位制。帶b說明是2進位制,h表示16進位制數。
微控制器內部資料儲存地址中的00h 和0fh,ffh代表什麼意思。。。f 和0是什麼
5樓:海天盛筵
表示十六進位制數的意思。
00h,0fh,ffh是一個十六進位制數,它等於0,0fh=15,ffh=255,用於內部資料儲存的記憶體。
00h~ffh相當於小數0~255
例如:二進位制十六進位制十進位制
00000000b000h
0000000101h1b
0000001002bh2
00001001b09h9
00001010b010
000010110bh11b
000011000ch12b
00001101b0dh13
00001110b014
00001111b0fh15
擴充套件資料:
注意事項:
8051系列微控制器有兩個定時器:t0和t1,分別稱為定時器和t1定時器,這兩個定時器是16位定時器/計數器,8052系列微控制器新增第三定時器/計數器t2,具有定時或事件計數功能,常用於時間控制,延時,外部時間計數和檢測等。
8051微控制器的兩個定時器t0和t1分別由兩個特殊的功能暫存器組成,t0由專用暫存器th0和tl0組成,t1由th1和tl1組成。
當作為定時器使用時,定時器對8051微控制器晶片振盪器輸出的脈衝數進行12分頻後計數,即每臺機器週期使定時器t0/t1的暫存器值自動累加1,直到溢位,之後迴圈計數從0開始;所以,定時器的解析度是時脈頻率的1/12。
當用作計數器時,外部脈衝訊號按引腳t0(p3.4)或t1(p3.5)計數,當輸入的外部脈衝訊號從1跳到0時,計數器的值自動增加1,計數器的最大頻率通常是時脈頻率的1/24。
由此可以看出,無論是定時器還是計數器的工作方式,定時器t0和t1都不佔用cpu時間,除非定時器/計數器t0和t1溢位,否則它可能導致cpu中斷,然後執行中斷處理程式,因此定時器/計數器是一種微控制器高效、靈活的工作元件。
6樓:匿名使用者
微控制器內部資料儲存地址, 資料 等等,都是 以 二進位制 或者 4 位二進位制 組成 1 位 十六進位制數,
00h ~ ffh 相當於 十進位制 的 0 ~ 255 。如
二進位制 十六進位制 十進位制
00000000b 00h 0
00000001b 01h 1
00000010b 02h 2
~00001001b 09h 9
00001010b 0ah 10
00001011b 0bh 11
00001100b 0ch 12
00001101b 0dh 13
00001110b 0eh 14
00001111b 0fh 15
~11111111b ffh 255
7樓:資深技術
00h,0fh,ffh是16進位制數值,對等於10進位制00h=0,0fh=15,ffh=255。用於內部資料儲存器是指的那一個儲存器。
8樓:匿名使用者
是十六進位制數,00h表示十六進位制0;
16進位制數右下角的h代表什麼
9樓:匿名使用者
十六進位制(hexadecimal)是計算機中資料的一種表示方法。它的規則是「逢十六進一」
十六進位制數具有下列兩個特點:
英文字母a,b,c,d,e,f分別表示數字10~15。
計數到f後,再增加1個,就進位。
十六進位制數是計算機常用的一種計數方法,它可以彌補二進位制數書寫位數過長的不足,也用於電視機中。
十六進位制數的表示方式為0x開頭。
示例:0xaf=175
十六進位制(hexadecimal)是計算機中資料的一種表示方法。同我們日常中的十進位制表示法不一樣。
十六進位制數的基數是16,採用的數碼是0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f。其中a-f分別表示十進位制數字10-15.十六進位制數的技術規則是「逢十六進一」,它的各位的權是以16的n次方標識的。
通常,對十六進位制數的表示,可以在數字的右下角標註16或h,但在c語言中是在數的前面加數字0和字母x即0x來表示。例如,12af在c語言中表示為0x12af。
十六進位制數的加減法的進/借位規則為:借一當十六,逢十六進一。 十六進位制數同二進位制數及十進位制數一樣,也可以寫成式的形式
「十六進位制資料95h」中「h」是什麼意思?
10樓:隨便什麼名啦啦
h 是十六進位制英文
hexadecimal的第一個字母,在95後寫h表示是十六進位制的數,不是十進位制的數
h是十六進位制的英文縮寫。
十六進位制(hexadecimal)是計算機中資料的一種表示方法。同我們日常中的十進位制表示法不一樣。
十六進位制數的基數是16,採用的數碼是0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f。其中a-f分別表示十進位制數字10-15.十六進位制數的技術規則是「逢十六進一」,它的各位的權是以16的n次方標識的。
通常,對十六進位制數的表示,可以在數字的右下角標註16或h,但在c語言中是在數的前面加數字0和字母x即0x來表示。例如,12af在c語言中表示為0x12af。
11樓:匿名使用者
h是十六進位制的英文縮寫。全拼如下
1 hex 或
2. hexadecimal
12樓:匿名使用者
錯了吧 十六進位制中沒有用h標識的啊
急求用c語言從鍵盤輸入十進位制正整數,轉換成二進位制輸出
include void main for i i 0 i printf d a i printf n 採用堆疊儲存方式,輸入的十進位制數除二餘數進棧,迴圈 最後輸出 include void main for i i 1 i 10 i printf d c i printf n void cast...
c從鍵盤輸入整數,求所有奇數的和
include int main cout system pause return 0 include int main cout 所有奇數的和為 return 0 include using namespace std void main for i 1 i 11 i cout 從鍵盤上輸入十個整...
設陣列a為含有元素的陣列,從鍵盤輸入陣列a的值
給你個思路 假設一個陣列a i 條件 i 0,i 10,i 1.然後定義a 0 是通過賦值的迴圈語句得出,鍵盤輸入第一個值scanf f a 0 後面的數可以按迴圈增加。2.更簡單,也可以自己設定輸入10次,來完成這個陣列。int a 10 int i for i 0 i 9 i scanf d a...