若有以下语句:int?u=020,v=0x20,w=‘\20’;
在这段C语言代码中: 变量u: int u = 020; 这里的 020 是八进制数表示形式。
八进制数以 0 开头,将八进制 020 转换为十进制,计算方法是 2 × 8 1 + 0 × 8 0 = 16 2\times8^1 + 0\times8^0 = 162×81+0×80=16 ,所以变量 u 的值为十进制的 16。
变量v: int v = 0x20; 这里的 0x20 是十六进制数表示形式。
十六进制数以 0x 开头,将十六进制 0x20 转换为十进制,计算方法是 2 × 1 6 1 + 0 × 1 6 0 = 32 2\times16^1+0\times16^0 = 322×161+0×160=32 ,所以变量 v 的值为十进制的 32。
变量w: int w = '\20'; 这里的 '\20' 是字符常量的八进制转义序列表示。
八进制转义序列以 \ 开头,后面跟着最多三位八进制数字。
将八进制 20 转换为十进制是 2 × 8 1 + 0 × 8 0 = 16 2\times8^1 + 0\times8^0 = 162×81+0×80=16 ,它代表ASCII码值为 16 的字符(在ASCII表中,这个字符不是可打印字符),所以变量 w 的值为十进制的 16 。
下面是一段完整的测试代码: c复制代码 #include
运行上述代码,输出结果如下: 复制代码 u = 16v = 32w = 16 可以看到变量 u 和 w 的值都是 16,变量 v 的值是 32 。