为什么(char)433在c ++中等于-79'+ - '?

时间:2015-06-14 16:46:24

标签: c++ debugging c++11

当我将433输入char时,我得到this。 433如何等于-79 ASCII 4&amp; 3 5251&amp; NumberOfDays <- function(date) return(as.numeric(format(as.Date(paste0(format(date,format="%Y"),formatC(ifelse(format(date,format="%m")=="12",0,as.numeric(format(date,format="%m")))+1,width=2,format="d",flag="0"),"01"),"%Y%m%d")-1,format="%d"))) > NumberOfDays(as.Date("2015-02-14","%Y-%m-%d")) [1] 28 > system.time(NumberOfDays(as.Date("2015-02-14","%Y-%m-%d"))) user system elapsed 0.0010000000 0.0000000000 0.0009999999 分别根据this表格。

1 个答案:

答案 0 :(得分:6)

十进制数4330x1b1,为int,通常为32位长。将它转换为char(通常有8位)时会发生什么情况,除了最低的8位之外的所有内容都会被丢弃,只留下0xb1 -79作为签名two-complement 8位整数。