x=x+18 为什么可以写成x+=18

来源:百度知道 编辑:UC知道 时间:2024/06/07 05:11:23
x=x+18 为什么可以写成x+=18
还有 int x=-3;
long int y;
y=x;
x的二进制形式为:1000000000011 这个是怎么算出得到这么多的.
y的二进制为:111111111111111110000000000000011怎么算出是这么多的.. 二进制这个是怎么算得 麻烦你说的详细点 我在给加分

我跟你讲 你问的这些 都是你这个阶段不用了解的

学习了以后的章节你自然就会明白的 我是过来人

+= 叫做加法赋值运算符,x += y 等效于 x = x + y,不同的是 x 只计算一次
至于负数的进制转换,二进制数的高位(即符号位)为1。这里x和y的二进制形式不同是因为两个数类型不同,它们的符号位也不同

x+=18是x=x+18的简写,本质是一样的!!!
y=x是赋值中的强制转换!!!
二进制就按照二进制的方法算!!!

x=x+18可写成x+=18是为了简化程序,编译程序在编译时将视这两个式子等效。
x是整形数,占16位二进制位(两个字节),而y是长整形,占32位二进制位(四个字节),整形里还有一个短整形,占8位二进制位(一个字节)。你这里将一个整形数赋值给一长整形数,其高位就用整形数的最高位填充。

x=x+18 为什么可以写成x+=18
(没有为什么,这是C的语法,记住就行.再如x=x*3可以写成x*=3)
int x=-3; (定义整形变量x且赋值为-3)
long int y;(定义长整形变量y)
y=x; (y赋值为-3)
x的二进制形式为:1000000000000011
(整形由16位二进制表示,最高位为符号位,0为正,1为负.)
y的二进制为:111111111111111110000000000000011
(长整形采用双倍字长表示32位)

这都是最基础的东西,你还是找本C语言的书,看看吧.说起来复杂,但你自己一看就很清楚了.

这种写法生成目标程序效率更高.