c++进制转换问题

发布于 2021-11-30 11:02:39 字数 994 浏览 829 评论 3

	inline char next_char(char const *&p) {
		if (*p != '\') //  is special; hence '\'
			return *p++;
		else { // 3 octal digits:         
			int char_value = digit(p[1], 8) * 64
				+ digit(p[2], 8) * 8
				+ digit(p[3], 8);
			if (char_value>std::numeric_limits<char>::max()
				|| char_value<std::numeric_limits<char>::min())
				throw domain_error(string("not a char"));
			p += 4; // backslash and 3 octal digits
			return char_value;
		}
	}

z看到c++程序设计语言的时候有这么一道题

完整的代码http://blog.csdn.net/shining100/article/details/5452989,最后就是

但是这个函数这,我实在不明白为什么“”这个引号是干啥的呢?如果是为了表示八进制形式吗“xxx”,但是我看有的地方说是八进制在前面加上0就可以了,这个函数的意思我始终没有搞明白!!那个大神能给我说说嘛?

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

深巷少女 2021-12-04 09:22:32

谢谢!!!

躲猫猫 2021-12-02 02:11:51

这段代码目测是用于处理C++的字符常量转义序列。但是即便是只处理八进制,逻辑也不正确,因为标准规定了:如果未满三个字符就遇到了非八进制字符,那就用已经得到的字符计算数值,也就是''等情况。

哑剧 2021-12-01 02:35:39

前面加上一个0是C/C++中八进制数的一种表达方法。
还有一种,八进制转义字符,是由反斜杠''和随后的1~3个八进制数字构成的字符序列。这在C、C++中也是比较习惯的用法。
 

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文