您好、欢迎来到现金彩票网!
当前位置:2019欢乐棋牌 > 字面值 >

请问C++字面值的一个问题书上说尽管整形字面值可以存储在带符号

发布时间:2019-06-15 22:49 来源:未知 编辑:admin

  请问C++字面值的一个问题,书上说尽管整形字面值可以存储在带符号数据类型中,但严格来说,十进制字面

  请问C++字面值的一个问题,书上说尽管整形字面值可以存储在带符号数据类型中,但严格来说,十进制字面

  请问C++字面值的一个问题,书上说尽管整形字面值可以存储在带符号数据类型中,但严格来说,十进制字面值不会是负数,如果我们使用了一个形如-42的负十进制字面值,那个负号并不在字面...

  请问C++字面值的一个问题,书上说尽管整形字面值可以存储在带符号数据类型中,但严格来说,十进制字面值不会是负数,如果我们使用了一个形如-42的负十进制字面值,那个负号并不在字面值之内,它的作用仅仅是对字面值取负值而已,请问这句话是什么意思,如果有一个-42的字面值,那这个字面值的值编译器到底会认为是多少

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部不懂你的意思,数据是按照二进制存放的。一个正整数就是他的二进制存放,一个负数是按照他的二进制的补码存放的,也即是说他的最高位(最左边)是1,而整数是0.一般都是通过首位是否是0判断是不是负数。

  对于一个无符号整数存放了一个负数,编译器会转换成这个数对这个数的类型所能取到数的个数取摸。

  例如:-1 赋给8 位的 unsigned char,那么结果是 255,因为 255 是 -1 对256 求模后的值(-1 mod 255=256)

  刚好也看到了这个问题!和你一样的疑惑,最后在cppreference上找到了答案!以下:

  没有负整数字面量。如 -1 的表达式应用一元减运算符到字面量所表示的值,这可能涉及隐式转换。

  也就是说是编译器替我们完成了这个隐式转换,将相应内存中的值变成了对应负数的二进制补码表示。

http://halsoankan.com/zimianzhi/16.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有