按 c/c++ 语法规定:
加前缀 0x,或 0X 表示的是 16进制数, 0 是数字0,不是字母。
加前缀 0 不带 x 也不带X 的是 8 进制数, 0 是数字0,不是字母。
不加前缀的数是十进制数。
所以:
7000 是10进制 整型常数。
07000 是8进制 整型常数。
0x7000 是16进制 整型常数。
0X7000 是16进制 整型常数。
------------------------------------
从数学观点来看,7000 可以是 8 进制和 8以上的任何进制数。
因为某进制数,最大的单个数等于 进制减1。每个数字+0x30,每个字母+0x37就成了。比如开头五个fad1e:
f的16进制是1111,加0x37即1111+00110111=01000110=0x46;
a的16进制是1010,加0x37即1010+00110111=01000001=0x41;
d的16进制是1101,加0x37即1101+00110111=01000100=0x44;
1的16进制是0001,加0x37即0001+00110111=00110001=0x31;
e的16进制是1110,加0x37即1110+00110111=01000101=0x45。
所以16进制数fad1e的ASCII码就是:46 41 44 31 45。
其他的你就照猫画虎吧……
01000001B中的B代表二进制数据,01000001的二进制数据转10进制为65,即'A'字符的ASCII码。
ASC码中字母是连续编码的,即 'B' = 'A' + 1,'C' = 'A' + 2,'D' = 'A' + 3,因为'A'的ASC码是 01000001B,‘B’的ASC码是 01000010B,你在这上面直接加上3的二进制 11B,就得到‘C’的ASC码01000100B。
如果你不会二进制加法,那就把上面的二进制转成10进制,算完后再换回2进制。
01000001B的10进制为65,即'A'字符的ASCII码,那么C的ASCII码为67,转化为二进制为01000100B。
扩展资料:
常见ASCII码的大小规则:0~9<A~Z<a~z。
1)数字比字母要小。如 “7”<“F”;
2)数字0比数字9要小,并按0到9顺序递增。如 “3”<“8” ;
3)字母A比字母Z要小,并按A到Z顺序递增。如“A”<“Z” ;
4)同个字母的大写字母比小写字母要小32。如“A”<“a” 。
几个常见字母的ASCII码大小: “A”为65;“a”为97;“0”为 48 [4] 。
参考资料来源:百度百科--ASCII
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)