① c語言浮點型轉換為整型怎麼轉換的
C語言有以下幾種取整方法:
1、直接賦值給整數變數。如:
int i = 2.5; 或 i = (int) 2.5;
這種方法採用的是捨去小數部分,能用於你的問題。
2、C/C++中的整數除法運算符「/」本身就有取整功能(int / int),而下面介紹的取整函數返回值是double。整數除法對正數的取整是捨去小數部分,能用於你的問題。不過整數除法對負數的取整結果和使用的C編譯器有關。
3、使用floor函數。floor(x)返回的是小於或等於x的最大整數。如:
floor(2.5) = 2
floor(-2.5) = -3
4、使用ceil函數。ceil(x)返回的是大於x的最小整數。如:
ceil(2.5) = 3
ceil(-2.5) = -2
floor()是向負無窮大舍入,floor(-2.5) = -3;ceil()是向正無窮大舍入,ceil(-2.5) = -2。floor函數能用於你的問題。
5、
int b = (int)a;//取整
int c = (int)(a+0.5);//四捨五入
② C語言中負號數怎樣轉換成正號數
數在計算機都以二進制方式存放的,二進制負數以補碼形式存放,第一位為符號位,1表明是負數。
如果不懂什麼是補碼:
負數的補碼是對其原碼逐位取反,但符號位除外;然後整個數加1。 同一個數字在不同的補碼表示形式里頭,是不同的。比方說-15的補碼,在8位2進制里頭是11110001,然而在16位2進制補碼表示的情況下,就成了1111111111110001。在這篇補碼概述里頭涉及的補碼轉換默認了把一個數轉換成8位2進制的補碼形式,每一種補碼表示形式都只能表示有限的數字。 【例2】求-7的補碼。 因為給定數是負數,則符號位為「1」。 後七位:+7的原碼(0000111)→按位取反(1111000)→加1(1111001) 所以-7的補碼是11111001。
③ c語言編程題,把1個整型數組中的所有負數改為正數
#include <stdio.h>
void main(void)
{
int a[5]={-1,2,-6,5,-9};
int i;
for(i=0;i<5;i++)
{ if(a[i]<0)
a[i]=-a[i];
}
for(i=0;i<5;i++)
printf("%3d",a[i]);
}
④ C語言中如何將讀取的負數轉換為正數
可以加if判斷啊,若小於零取反
如果讀取的是字元串,可以使用atoi函數(把字元型轉化為整形)
另外二樓說的也可行,用abs(a)函數
⑤ c語言強制轉換,把負數轉換成正數!
用0-t就OK
int c,a=6,b=8;
c=(unsiged)(6-8);
c=-c;
printf("%d",c);
如果是已知負數,用取到他的補碼就OK,也就是用0-t就可以得到。
C儲存int是4個位元組,低位儲存高位元組,高位儲存低位元組。
-2在C內存是 1110 1111 1111 1111 1111 1111 1111 1111
2在C內存是 0010 0000 0000 0000 0000 0000 0000 0000
但演算法的時候,c已經作了處理,-t的時候就已經按高低位取反加1了
⑥ C語言中如何將字元串轉化為整型數,注意負數處理方法
#include<stdio.h>
#include<string.h>
#include<assert.h>
intatoi(char*s)
{
assert(s&&strlen(s));
intflag=1;
intret=0;
while(*s=='-'&&++s&&(flag=-1)==1||*s!='