Tag: ascii

在C中将ASCII编号转换为ASCII字符

在C中有没有办法将类型为int的ASCII值转换为相应的ASCII字符作为char?

在一个字节中转换两个ASCIIhex字符(两个ASCII字节)

我想将两个ASCII字节转换为一个hex字节。 例如。 0x30 0x43 => 0x0C , 0x34 0x46 => 0x4F … ASCII字节是0到9之间的数字或A和F之间的字母(仅大写),因此在0x30 … 0x39和0x41 … 0x46 我知道如何“构造” 0x4F与数字0x34和0x46 : 0x4F = 0x34 * 0x10 + 0x46 所以,实际上,我想以hex值转换一个ASCII字节。 为此,我可以构建和数组以将hex值分配给ASCII字符: 0x30 => 0x00 0x31 => 0x01 … 0x46 => 0x0F 但是,也许它有一个最“正确”的解决方案。 该程序将在AVRμC上运行并使用avr-gcc ,因此scanf() / printf()解决方案不适用。 你有个主意吗? 谢谢

Unicode存储在C char中

我现在正在Linux上学习C语言,而且我遇到了一些奇怪的情况。 据我所知,标准C的char数据类型是ASCII,1字节(8位)。 它应该意味着它只能包含ASCII字符。 在我的程序中,我使用char input[] ,它由getchar函数填充,就像这个伪代码: char input[20]; int z, i; for(i = 0; i < 20; i++) { z = getchar(); input[i] = z; } 奇怪的是它不仅适用于ASCII字符,而且适用于我想象的任何字符,例如@&@{čřžŧ¶’`[łĐŧđж←^€~[←^ø{&}čž输入。 我的问题是 – 怎么可能? 它似乎是C中许多美丽的例外之一,但我真的很感激解释。 这是操作系统,编译器,隐藏语言的附加超级function吗? 谢谢。

如何在C中将128位整数转换为十进制ascii字符串?

我正在尝试将存储为4个无符号整数的数组的128位无符号整数转换为C中的十进制字符串表示forms: unsigned int src[] = { 0x12345678, 0x90abcdef, 0xfedcba90, 0x8765421 }; printf(“%s”, some_func(src)); // gives “53072739890371098123344” (上面的输入和输出示例完全是虚构的;我不知道输入会产生什么。) 如果我要使用hex,二进制或八进制,这将是一个简单的掩码和位移到剥离最不重要的字符。 但是,在我看来,我需要做基数为10的分裂。 不幸的是,我不记得如何跨多个int执行此操作,并且我使用的系统不支持大于32位的数据类型,因此使用128位类型是不可能的。 使用不同的语言也是不对的,我宁愿为这一项操作避开一个大数字库。

UTF-8 – > C语言的ASCII

我有一个简单的问题,我无法在互联网上找到任何地方,如何在C中仅使用标准的lib将UTF-8转换为ASCII(大多数重音字符为相同的字符,无需重音)? 我找到了大多数语言的解决方案,但不是特别针对C语言。 谢谢! 编辑:评论的一些人让我仔细检查我需要什么,我夸大了。 我只需要一个关于如何创建一个函数的想法:带有重音的char – >没有重音的char。 🙂

如何将字符数转换为十进制并返回或将ASCII’A’ – ‘Z’/’a’ – ‘z’转换为字母偏移0表示’A’/’a’…?

如果您的char在“0”到“9”范围内,如何将其转换为0到9的int值 然后你如何将它转换回来? 同时给出字母’A’到’Z’或’a’到’z’如何将它们转换为0-25然后再返回? 可以优化ASCII

C和C ++是否保证和字符的ASCII?

我正在查看以下代码来测试hex数字并将其转换为整数。 代码有点聪明,因为它利用大写字母和低位字母之间的差异是32,而这是第5位。因此代码执行一个额外的OR ,但保存一个JMP和两个CMP 。 static const int BIT_FIVE = (1 << 5); static const char str[] = "0123456789ABCDEFabcdef"; for (unsigned int i = 0; i = ‘0’ && ch = ‘a’ && ch <= 'f') digit = ch – 'a' + 10; … } C和C ++是否保证[af]和[AF]字符的ASCII或值? 这里,保证意味着上下字符集总是相差一个常数值,可以用一个位表示(对于上面的技巧)。 如果没有,标准对他们说了什么? (对不起C和C ++标签。我对两种语言在这个问题上的立场感兴趣)。

用C代码表示EOF?

换行符在C代码中用”\n”表示。 是否有文件结束(EOF)字符的等价物?

在C中将字符转换为二进制

我试图将一个字符转换为它的二进制表示(所以字符 – > ascii hex – >二进制)。 我知道这样做我需要转移和AND 。 但是,我的代码由于某种原因不起作用。 这就是我所拥有的。 *temp指向C字符串中的索引。 char c; int j; for (j = i-1; j >= ptrPos; j–) { char x = *temp; c = (x >> i) & 1; printf(“%d\n”, c); temp–; }