C程序将十进制数转换为二进制字符串

时间:2020-04-10 15:57:59

标签: c string

我得到了此程序,用于将输入的十进制数字转换为 binary 数字的字符串。现在,这是一个正确的程序,并且可以正常工作。我在ZoneId z = ZoneId.systemDefault() ; ZonedDateTime zdt = odt.atZoneSameInstant( z ) ; 循环中有一个疑问,说DateTimeFormatter f = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.FULL ).withLocale( Locale.getDefault() ) ; String output = zdt.format( f ) ; ,我相信余数while的值最终将由ch = (rem + 48);继承,然后为什么加0即。以ASCII表示48是有影响的。是什么加上48将rem转换为字符形式。如果我只写ch,则rem不被认为是字符,加48使其成为字符。但是为什么呢?

ch = rem;

2 个答案:

答案 0 :(得分:0)

# map2 (fun op -> List.fold_left op 0) [(+); (-)] [[1;2;3]; [3;2;1]];; - : int list = [6; -6] 是代表ASCII字符值的数字

ch对应于字符48

"0"对应于字符49

"1"(0或1)与48的和分别为48或49,分别是字符rem"0"

答案 1 :(得分:0)

在C中将字符数字转换为其等效的整数值,我们可以使用以下关系:

ct2

类似地,将数字转换为其等效的字符数字,我们使用以下关系:

x = character - '0'

这就是为什么在您的ch = digit + '0' 中加48使其成为字符。

相关问题