我得到了此程序,用于将输入的十进制数字转换为 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;
答案 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使其成为字符。