肯定需要。机械物理本身是二进制的。程序中,一个字节是8个进制,常用2个16进制数来表示。我们学习生活中使用的都是10进制。所以很有必要学会进制转换。8,10,16进制的转换。在C语言中有不少函数都能实现上面几种进制之间的进制转换。推荐其中的sprintf/sscanf函数。sprintf格式的规格如下所示。[]中的部分是可选的。%[指定参数][标识符][宽度][.精度]指示符若想输出'%'本身时,请使用'%%'处理。1.处理字符方向。负号时表示从后向前处理。2.填空字元。0的话表示空格填0;空格是内定值,表示空格就放着。3.字符总宽度。为最小宽度。4.精确度。指在小数点后的浮点数位数。转换字符%%印出百分比符号,不转换。%c整数转成对应的ASCII字元。%d整数转成十进位。%f倍精确度数字转成浮点数。%o整数转成八进位。%s整数转成字符串。%x整数转成小写十六进位。%X整数转成大写十六进位。例程(16进制和10进制之间的转换): #include <stdio.h> #include <limits.h> int main() { char s[100] = {0}; sprintf(s, "%x", INT_MAX); printf("%s\n", s); // 7fffffff char str[100] = "7fffffff"; int i = 0; sscanf(str, "%x", &i); printf("%d\n", i); // 2147483647 return 0; }
阅读全文 >