机器语言是用0和1来处理问题的,在C语言中通过设定不同的显示格式在屏幕上将显示不同的进制格式的数据,比如:十六进制,八进制,二进制,十进制等等,这些都是常用的一些进制.
回想起关于进制的故事还是很多的,曾经刚刚开始接触进制这些东西的时候确实很不理解,为什么要这样表示数据了?
我们的手指头有10个,小学的时候做算术题,特别的给力,还记的小学一年级的老师刚刚把算术题往黑板上一些,同学们纷纷伸出手,快速的瓣着指头,惟恐落后.那时候十进制已经在我们的童年生活留下了很深刻的印象.
有时候运算量大了,或者超过了20或者50,太大,记不住用了多少次两只手,恨不得用上脚指也来运算.
我们的生活总还有很多关于进制的使用。
曾经的半斤八两的故事,就可以说明十六进制的使用已经有很久的历史了。
当初的接触的二进制时候,老师只是讲到0和1在物理电气上很容易实现。实际上进制的使用可是说让我们的生活增添了不知多少色彩。
二进制:
中国的阴阳,就是一阴一阳
自然的白昼,黑夜和白天
当然性别是不能用二进制来讲,因为男不能说加男等于女,或者女加上女等于男。不过可以用0和1来表示男和女。我们在程序设计中数据库中存储性别的时候就用布尔类型来表示性别,用false来表示男,用true表示女,这样就可以用0表示男和1表示女。
七进制:
星期就是用七进制来表示
八进制:
八进制在计算机中经常使用,我们的一个字节正好是8bit。
十二进制:
我们的年的表示就用月来表示,12个月表示一年,这就是12进制的一种体现。
当然月份我们不能说30,或者31进制,因为月份的天数并不是确定的。
中国的十二×××也算是一种十二进制的表示,每个十二年就一个轮回。
十六进制:
十六进制在计算机和科学计算中还是比较常用的。
我们可以用四位二进制来表示一位十六进制,十六进制的表示是:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
我国古代的重量计数就是用十六进制表示,这样就有了“半斤八两”,当然这个词现在是一个贬义词,因为现在我们的重量计数早已经用十进制来表示了。
二十四进制:
1天=24小时,这是我们生活中常见的一种二十四进制的使用。
我们国家的进制使用可以说是包罗万象,二十四进制也不例外。我们的二十四节气,就是一个很好的例子。
六十进制:
想起六十进制就不可思议。曾经有这么一句描述年龄的诗句:“花甲重逢增添三七岁月”,这就表示了141岁的年龄,“古稀双庆再过一度春秋”,这也表示141岁。不过花甲确实也在我国是一种进制的使用,这就是六十进制。一个甲子年就是60个春秋,而且这在我们的生活中经常使用,而且还具有着重大的纪念意义等等云云。
还有就是我们的时间中分钟和秒分别都是用60进制来表示的。 1分钟=60秒 1小时=60分钟
下面是汇编语言中十六进制数转化为ASCII码后在DOS窗口显示的代码:
- data segment
- ;asc db 4 dup(?)
- hx dw 8DB9H
- data ends
- code segment
- assume cs:code,ds:data
- start:
- mov ax,data
- mov ds,ax
- mov bx,hx
- ;lea si,asc
- mov cl,4
- mov ch,4
- again:
- rol bx,cl ;left move 4 bit
- mov al,bl ;get bx in low 4 bit
- and al,0FH ;al in 1 bit ASCII
- call proc_1
- ;mov [si],al
- ;inc si
- ;just for show the al
- mov ah,2
- mov dl,al
- int 21h
- dec ch
- jnz again
- jmp finish
- proc_1 proc
- add al,30H
- cmp al,39H
- jbe com
- add al,7 ;because between have 7 sign
- com:
- ret
- proc_1 endp
- finish:
- mov ah,4CH
- int 21h
- code ends
- end start
我们生活中用到了很多进制,但是当我们用计算机来处理生活中的这些问题的时候,自然就用到各种各样的进制转换。