7十2=1=11,6+4二2=12
7十7=6=16,8+8=4=20
4+4二10,6+6=4=|4
8进制运算规则
八进制数转换为十进制数八进制就是逢8进1。
八进制数采用 0~7这八数来表达一个数。
八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方……
所以,设有一个八进制数:1507,转换为十进制为:
用竖式表示:
1507换算成十进制。
第0位,即: 7 * 8^0 = 7
第1位,即: 0 * 8^1 = 0
第2位,即: 5 * 8^2 = 320
第3位,即: 1 * 8^3 = 512
----------------------------------------
+ 839
同样,我们也可以用横式直接计算:
7 * 8^0 + 0 * 8^1 + 5 * 8^2 + 1 * 8^3=839
结果是,八进制数 1507 转换成十进制数为 839
八进制数的表达方法C,C++语言中,如何表达一个八进制数呢如果这个数是 876,我们可以断定它不是八进制数,因为八进制数中不可能出7以上的阿拉伯数字。但如果这个数是123、是567,或12345670,那么它是八进制数还是10进制数,都有可能。
所以,C,C++规定,一个数如果要指明它采用八进制,必须在它前面加上一个0,如:123是十进制,但0123则表示采用八进制。这就是八进制数在C、C++中的表达方法。
由于C和C++都没有提供二进制数的表达方法,所以,这里所学的八进制是我们学习的,CtC++语言的数值表达的第二种进制法。
对于同样一个数,比如是100,我们在代码中可以用平常的10进制表达,例如在变量初始化时:
int a = 100
我们也可以这样写:
int a = 0144 //0144是八进制的100一个10进制数如何转成8进制,我们后面会学到。
千万记住,用八进制表达时,你不能少了最前的那个0。否则计算机会通通当成10进制。不过,有一个地方使用八进制数时,却不能使用加0,那就是我们前面学的用于表达字符的“转义符”表达法。
在8086/8088汇编语言中 八进制表示为结尾加Q
如:121Q,333Q
八进制数在转义符中的使用我们学过用一个转义符''加上一个特殊字母来表示某个字符的方法,如:'n'表示换行(line),而't'表示Tab字符,'''则表示单引号。今天我们又学习了一种使用转义符的方法:转义符''后面接一个八进制数,用于表示ASCII码等于该值的字符。
比如,查一下第5章中的ASCII码表,我们找到问号字符(?)的ASCII值是63,那么我们可以把它转换为八进值:77,然后用 ྉ'来表示'?'。由于是八进制,所以本应写成 '