日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

向上取整与向下取整

發(fā)布時間:2023/12/19 综合教程 34 生活家
生活随笔 收集整理的這篇文章主要介紹了 向上取整与向下取整 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
向上向下取整函數(shù)數(shù)只會對小數(shù)點后面的數(shù)字不為零的數(shù)進行操作,要是給它一個整數(shù)  它就返回整數(shù)本身.

對小數(shù)不為零的數(shù)操作:
向上取整 不管四舍五入的規(guī)則 只要后面有小數(shù)前面的整數(shù)就加1
向下取整 不管四舍五入的規(guī)則 只要后面有小數(shù)忽略小數(shù)
給定  4.9
調(diào)用用向下取整函數(shù) 得到的是 4
調(diào)用用向上取整函數(shù) 得到的是 5

Word->插入->符號,在字體中選擇Lucida Sans Unicode   子集選擇數(shù)學(xué)運算符   就能找到向上
、向下取整符號


向下取整的運算稱為Floor,用數(shù)學(xué)符號??表示,與之相對的,向上取整的運算稱為Ceiling,用數(shù)學(xué)符號??表示。

C語言定義的取整運算既不是Floor也不是Ceiling,無論操作數(shù)是正是負總是把小數(shù)部分截斷(Truncate),所以當操作數(shù)為正的時候相當于Floor,當操作符為負的時候相當于Ceiling。

網(wǎng)頁分頁常用到的一個分頁算法

假設(shè)變量x和n是兩個正整數(shù),我們知道x/n這個表達式的結(jié)果是取Floor,例如x是17,n是4,則結(jié)果是4。如果希望結(jié)果取Ceiling應(yīng)該怎么寫表達式呢?例如x是17,n是4,則結(jié)果是5,而x是16,n是4,則結(jié)果是4。

#include <stdio.h>

int main()
{
int x,n;

printf("請輸入數(shù)字:x n/n");
scanf("%d %d",&x,&n);
printf("x/n 向上取整的結(jié)果:%d/n",(x+n-1)/n);
printf("x/n 向上取整方法二:%d/n",(int)(((float)x/(float)n)+0.9));
return 0;
}

向下取整的運算稱為Floor,用數(shù)學(xué)符號??表示;向上取整的運算稱為Ceiling,用數(shù)學(xué)符號??表示。例如:

?59/60?=0
?59/60?=1
?-59/60?=-1
?-59/60?=0

  在C語言中整數(shù)除法取的既不是Floor也不是Ceiling,無論操作數(shù)是正是負總是把小數(shù)部分截掉,在數(shù)軸上向零的方向取整(Truncate toward Zero),或者說當操作數(shù)為正的時候相當于Floor,當操作數(shù)為負的時候相當于Ceiling。

習(xí)題

  假設(shè)變量x和n是兩個正整數(shù),我們知道x/n這個表達式的結(jié)果要取Floor,例如x是17,n是4,則結(jié)果是4。如果希望結(jié)果取Ceiling應(yīng)該怎么寫表達式呢?例如x是17,n是4,則結(jié)果是5;x是16,n是4,則結(jié)果是4。

習(xí)題的大意是如果X除N能除斷,則結(jié)果為余數(shù),如果X不能除斷,則結(jié)果為余數(shù)加1。

INT函數(shù)

  將數(shù)字向下舍入到最接近的整數(shù),即取不大于自變量的最大整數(shù),
例如:int[6.4]=6 int[-9.7]= -10
語法
INT(number)
Number 需要進行向下舍入取整的實數(shù)。
示例
  如果將示例復(fù)制到空白工作表中,可能會更易于理解該示例。   

? A
1 數(shù)據(jù)
2 19.5
公式 說明(結(jié)果)
=INT(8.9) 將8.9向下舍入到最接近的整數(shù)(8)
=INT(-8.9) 將-8.9向下舍入到最接近的整數(shù)(-9)
=A2-INT(A2) 返回單元格A2中正實數(shù)的小數(shù)部分(0.5)

類型標識符

   C/C++編程語言中,int表示整型變量,是一種數(shù)據(jù)類型,用于定義一個整型變量,在不同編譯環(huán)境有不同的大小,不同編譯運行環(huán)境大小不同,在但是 32/64位系統(tǒng)中都是32位,范圍為-2147483648~+2147483647,無符號情況下表示為0~4294967295。

網(wǎng)上搜索到結(jié)果為如下:

1、
if((x%n)>0){result =x/n+1;}
else{result=x/n;}

2、
(x+n-1)/n);

3、
(int)(((float)x/(float)n)+0.9))

下面給出證明:

1. 設(shè)x=kn,k為整數(shù),即x為n的整數(shù)倍。則(x+n-1)/n=(kn+n-1)/n=((k+1)n-1)/n,此時分子沒有達到n的k+1倍,但大于等于n的k倍,
默認計算取下整則為k。符合要求。
2.設(shè)x=kn+m,k為整數(shù),m為整數(shù)且0<m<n。則(x+n-1)/n=(kn+m+n-1)/n=((k+1)n+m-1)/n。此時分子的大于等于(k+1)n,小于(k+2)n,
按照默認計算應(yīng)該為k+1。符合要求。

  向上取整和向下取整的代碼實例:

#include <math.h>
#include <stdio.h>
void main( void )
{
double y;
y = floor( 2.8 );
printf( "The floor of 2.8 is %f ", y );
y = floor( -2.8 );
printf( "The floor of -2.8 is %f ", y );
y = ceil( 2.8 );
printf( "The ceil of 2.8 is %f ", y );
y = ceil( -2.8 );
printf( "The ceil of -2.8 is %f ", y );
}


Output
The floor of 2.8 is 2.000000 // 地板,就是取低
The floor of -2.8 is -3.000000 // 地板,就是取低,-3 比 -2.8 低
The ceil of 2.8 is 3.000000 // 天花板,就是取高
The ceil of -2.8 is -2.000000 // 天花板,就是取高,-2 比 -2.8高
  Word->插入->符號,在字體中選擇Lucida Sans Unicode   子集選擇數(shù)學(xué)運算符   就能找到向上、向下取整符號

該習(xí)題解答如下:
#include <stdio.h>
int main()
{
int x,n;
printf("請輸入數(shù)字:x n
");
scanf("%d %d",&x,&n);
printf("x/n 向上取整的結(jié)果:%d
",(x+n-1)/n);
return 0;
}

linux 系統(tǒng)下編譯此程序步驟:
將這個程序保存成main.c,然后編譯執(zhí)行:
$ gcc main.c
$ ./a.out
gcc是Linux平臺的C編譯器,編譯后在當前目錄下生成可執(zhí)行文件a.out,直接在命令行輸入這個可執(zhí)行文件的路徑就可以執(zhí)行它。如果不想把文件名叫a.out,可以用gcc的-o參數(shù)自己指定文件名:
$ gcc main.c -o main
$ ./main

總結(jié)

以上是生活随笔為你收集整理的向上取整与向下取整的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。