作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
int main(){
char c=0371;
cout<<hex<<(int) c;
return 0;
}
我将 c 转换为二进制系统 (011 111 001),然后是十六进制 (f9)。那为什么它给出的结果是 fffffff9 而不是 f9?
最佳答案
如果您系统上的 char
类型是有符号的,则值 0xf9 是一个负数(具体来说,它是 -7)。因此,当您将其转换为整数时,它会为整数赋予数值 -7,其十六进制表示形式为 0xFFFFFFF9(如果您使用的是带符号的 32 位整数表示形式)。
如果您显式地将字符值设置为 unsigned char
,那么 C++ 会将其转换为正值 249,它具有等效的整数值 249,十六进制表示形式为 0x000000F9。
关于c++ - 为什么这段代码的输出是fffffff9?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47021038/
我需要这样的日期格式:yyyy-MM-dd_HH.mm.ss.fffffff 我试过这个: var currentdate = new Date(); var fileName = currentda
我是一名优秀的程序员,十分优秀!