百度试题 结果1 题目C语言中如何把正数转换成负数?如题,例如,如何将+1,转成-1? 相关知识点: 试题来源: 解析 直接拿0减去就行,比如:int n=-5;0-5 就得到了+5 这是常用的正负转换 反馈 收藏
// 将正数变成相应的负数,将负数变成相应的正数 #include <stdio.h> int turn(int a) { a = ~a + 1; return a; } int main() { printf("%d\n", turn(5)); printf("%d\n", turn(0)); printf("%d\n", turn(-1)); return 0; }...
// 将正数变成相应的负数,将负数变成相应的正数 #include <stdio.h> int turn(int a) { a = ~a + 1; return a; } int main() { printf("%d\n", turn(5)); printf("%d\n", turn(0)); printf("%d\n", turn(-1)); return 0; }...
直接拿0减去就行,比如:int n=-5;0-5 就得到了+5 这是常用的正负转换
编译器的问题。有可能你的编译器int类型是16位的。你可以把你的sum类型定义成long试一试。
说起来对于浮点数,确实有个copysign(floating, -1)能把各种浮点数转为负数…… 展臂_飞翔 团子家族 10 自己遍一个不就行了! 天魔666 麻婆豆腐 11 你以为函数调用不需要花 CPU 时间和增加编译器难度呀? 咕咚初号机 异能力者 6 正数转成负数?int a=2;int b=a*-1;这样? 6925694 异能力者 6 a=...
main(){ int i,k=1;for(i=1;i<10;i++){ k=-1*k;printf(" %d",i*k);} } 运行一下,你就知道了
这和C语言中数据的储存有关。C语言中数据的储存空间是有限的,比如说整型数据,占四个字节,从而整型数是有范围的,从-2^31+1到2^31,正负号根据二进制数第一位决定。并且运算是以二进制来进行的,当两个数加和超出范围时,自动舍去超出的位数(二进制),所以当然可能两个很大的正数相加等于负数...
第一位符号位1为负,0为正。 正数的补码和2进制原码是一样的。负数的补码:1、先取绝对值|x| ;2、对|X|+1 ;3、对|X|+1 取反,就得到它的补码了 。计算机中存放整型数据都是按补码的形式存放的。
对于一个有符号的正数,它的符号位是 0,当按照无符号数的形式读取时,符号位就变成了数值位,但是该位恰好是 0 而不是 1,所以对数值不会产生影响,这就好比在一个数字前面加 0,有多少个 0 都不会影响数字的值。如果对一个有符号的负数使用 %o 或者 %x 输出,那么结果就会大相径庭,读者可以亲试。可以...