我尝试在 ruby 和 C 中将小数转换为 char,结果如下:
In Ruby: 129.chr is equals to "\x81"
: 106.chr is equals to "j"
In C : (char)(129) is equals to "\201"
: (char)(106) is equals to "j"
为什么在 C 中转换 129 时结果是将 129 转换为其 oct 值? ruby 有没有办法表现得像那样?
最佳答案
更正:在C中,字符常量是'j'
,而不是"j"
(字符串字面量)
在C语言中,字符常量都是int
类型,106
(十进制整数)、\152
(字符常量)没有区别八进制)和 'j'
(字符常量)。
在 Ruby 中,要获取八进制字符串,请使用 Fixnum#to_s
:
129.to_s(8)
# => "201"
关于ruby 中的 char 转换在 C 中是不同的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28404460/