java u003_我在B站学编程 DAY-003 JAVA基础概念和语法
八進制:0-7組成
例子:
八卦
指令在機器中以機器碼格式輸出,機器碼一次原始輸出位數是八的倍數,即以字節長度為最小單位輸出。
十六進制:0-9,abcde...組成,0X開頭
十六進制可以更緊湊地表示二進制,讓人們不用直接面對冗長的01機器碼
匯編里計算 96÷4。
用 div 指令是這樣:
mov ax, 60h
mov cl, 4h
div ax, cl
執行后 al=0x18 表示商,ah=0x0 表示余數。
但是我看應該不會有人愿意這么做。因為 div 指令要求被除數必須放在 ax 中,不能放在別的地方。如果要執行這個除法運算的不是 ax,而是別的寄存器,或者一個內存單元,就必須先把它的值送到 ax 中,然后才能用上面的指令去運算。更要命的是,如果這個時候 ax 中還有別的有用的數據,那就更麻煩了,還得先 push 臨時儲存,算完以后再 pop 回來。
所以機智的做法應該是下面這樣:
mov ax, 60h
shr ax, 1h
shr ax, 1h
這里的 ax 可以換成 bx 等別的寄存器。shr 是邏輯右移,每執行一次相當于除以 2。
96 寫成二進制是 01100000,右移一位得到 0110000,也就是十六進制的 0x30,十進制是 48。
再右移一位,變成 011000,十六進制是 0x18,十進制是 24。
如果右移四位,得到的則是 0110,等于 0x6,剛好相當于除以 16。
那么如果改成 96÷32,就要執行五次“shr ax, 1h”。為了避免這個麻煩,可以寫成下面這樣:
mov ax, 60h
mov cl, 5h
shr ax, cl
對于除數為 2、4、8、16……的除法運算,用 shr 指令比用 div 指令快得多,也方便得多。
在編程中 and、or、not、xor、shl、shr 等是一類非常有用的運算,它們都是為二進制而生的,而引入十六進制的目的之一就是為了便于閱讀二進制,因此相對于十進制來說,十六進制擁有無法取代的優勢。當然并不是說一定不能用十進制去表示,理論上確實是可行的,只是由于會帶來太多麻煩,人們不愿意這樣做罷了。
因此,誰要是喜歡在計算機界里搞十進制,誰才是真正的反人類。
二進制原理:
一字節=八個比特位
1byte=8bit
1kb=1024b
1m=1024k
1g=1024m
1t=1024G
八進制轉十進制:
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的java u003_我在B站学编程 DAY-003 JAVA基础概念和语法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一起学OCP:oracle-082题库及
- 下一篇: 网易云音乐会员下载正常音乐格式