08和8的区别,二进制、八进制、十进制、十六进制。
08和8到底有什么區(qū)別呢?
08和8到底有什么區(qū)別呢?這句話在前兩天測試中念叨了很久很久。
問題起因
就在前兩天的測試中啊,用I2c測網(wǎng)卡的Bypass的時候出現(xiàn),從01、02、03一直到07都是正常的,到了08突然就報錯了,09也是報錯了,后面10、11、12都是正常的。08和09是換成了8和9才沒有報錯,當(dāng)時也沒怎么在意這個事,只是有點奇怪08不行8卻行呢。
原因所在
直到今天在看資料的時候看到這樣一句話:0x或者0X表示十六進(jìn)制,0表示八進(jìn)制,這才反應(yīng)過來原來08是八進(jìn)制的表示,而八進(jìn)制里面沒有8,所以08就報錯了,同理09也是如此,到10的時候就已經(jīng)悄悄的成十進(jìn)制了。
這個問題就說明了我已經(jīng)忘了這個知識點了,都不知道08是八進(jìn)制的表示,還在那疑惑08和8的區(qū)別,以后得注意啊。
什么是整數(shù)常量
規(guī)范說法是整型常量,就是通常的整數(shù),包括正整數(shù)、負(fù)整數(shù)和0,其數(shù)據(jù)類型是整型,除此整型常量包括短整型、長整型和無符號型等。
在C語言中,整型常量有三種書寫方式:
1.八進(jìn)制整常數(shù)必須以0開頭,即以0作為八進(jìn)制數(shù)的前綴,數(shù)值取值0~7。以下列舉合法的八進(jìn)制數(shù):015(十進(jìn)制13) 0101(十進(jìn)制65) 0177777(十進(jìn)制數(shù)為65535)
以下各數(shù)不是合法的八進(jìn)制數(shù) :222(沒有前綴0,是個十進(jìn)制的數(shù)) 0228(包含了非八進(jìn)制數(shù)碼,八進(jìn)制里沒有8也沒有9)
2.十六進(jìn)制數(shù)前綴為0X或者0x,數(shù)值取值是從0~9 A~F a~f 。一下是合法的十六進(jìn)制數(shù):0x1(十進(jìn)制1) 0X111(十進(jìn)制273) 0x1A(十進(jìn)制數(shù)26) 以下是不合法的十六進(jìn)制數(shù):0x1H(含非十六進(jìn)制數(shù)) 123(沒有前綴,是個十進(jìn)制數(shù))
3.十進(jìn)制數(shù),就是通常整數(shù)的寫法。例如:11、22、456等
注意,整型常量前面沒有+或者-,-11其實就是一元運算符和操作數(shù)10,同樣整型常量的十進(jìn)制表示并沒有0,單獨寫一個0其實就是一個八進(jìn)制常量。
由于整型常量分為短整型和長整型兩種,同時又有十進(jìn)制、八進(jìn)制、十六進(jìn)制三種書寫方式,所以在使用整型常量的時候要注意區(qū)分。比如:10和10L是不同的整型常量,雖然它們有相同的數(shù)值,但是它們在內(nèi)存中占用不同數(shù)量的字節(jié);又比如:10、010、0x10雖然都是短整型常量,但它們表示不同的整數(shù)值。
總結(jié)
以上是生活随笔為你收集整理的08和8的区别,二进制、八进制、十进制、十六进制。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: node+ts后端项目使用pm2部署篇
- 下一篇: 省级和地方政府工作报告及其词频分析(20