本文目錄一覽:
- 1、c語言如何取模運算
- 2、c語言中如何導入圖片?
- 3、c語言五子棋圖片怎麼加載到工程里?
- 4、尋求一彩色圖像取模軟件,要求生成C語言數組(例如黑色為0x0000,白色為0xffff,不是0x00和0xff)
c語言如何取模運算
取模運算:a % p(或a mod p),表示a除以p的餘數。
比如給定一個正整數p,任意一個整數n,一定存在等式 :n = kp + r ;其中 k、r 是整數,且 0 ≤ r p,則稱 k 為 n 除以 p 的商,r 為 n 除以 p 的餘數。
取模運算的規則如下:
1、(a + b) % p = (a % p + b % p) % p 。
2、(a – b) % p = (a % p – b % p) % p 。
3、(a * b) % p = (a % p * b % p) % p 。
4、a ^ b % p = ((a % p)^b) % p 。
擴展資料:
取模運算在c語言中的應用範圍:
1、判別奇偶數
奇偶數的判別是模運算最基本的應用,也非常簡單。已知一個整數n對2取模,如果餘數為0,則表示n為偶數,否則n為奇數。
2、判別素數
一個數,如果只有1和它本身兩個因數,這樣的數叫做質數(或素數)。例如 2,3,5,7 是質數,而 4,6,8,9 則不是,後者稱為合成數或合數。用不比該自然數的平方根大的正整數去除這個自然數,若該自然數能被整除,則說明其非素數。
3、求最大公約數
求最大公約數最常見的方法是歐幾里德算法(又稱輾轉相除法),其計算原理依賴於定理:gcd(a,b) = gcd(b,a mod b)。
參考資料來源:百度百科:取模運算
c語言中如何導入圖片?
具體操作步驟如下:
一、首先現在圖片取模軟件找到軟件快捷方式,點擊打開軟件。
二、現在進入到了取模軟件,點擊“載入圖片”,現在就可以進行添加圖片了。
三、選擇需要添加的圖片,點擊選擇圖片,然後單擊“打開”。
四、現在點擊“設置”進入圖片參數設置。
五、現在有輸出格式,取模方式,圖片截取範圍一些參數設置進行設置。
六、如果確認無誤,直接單擊參數確認就可以了。
七、然後進行數據保存,點擊數據保存。
八、選擇文件保存路徑,點擊“保存”就可以了。
C語言是一門面向過程、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。
但仍然保持着跨平台的特性,以一個標準規格寫出的C語言程序可在包括一些類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。C語言是一門面向過程的計算機編程語言,與C++、Java等面向對象編程語言有所不同。
C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。C語言描述問題比彙編語言迅速,工作量小、可讀性好,易於調試、修改和移植,而代碼質量與彙編語言相當。
參考資料來源:百度百科-c語言
c語言五子棋圖片怎麼加載到工程里?
1、首先,先在圖片取模軟件找到軟件快捷方式,點擊打開軟件。進入到了取模軟件,點擊“載入圖片”,進行添加圖片了。選擇需要添加的圖片,點擊選擇圖片,在單擊“打開”。
2、其次,點擊“設置”進入圖片參數設置。有輸出格式,取模方式,圖片截取範圍一些參數設置進行設置。確認無誤,直接單擊“參數確認就可以了”。
3、最後,進行數據保存,點擊數據保存。選擇文件保存路徑,點擊“保存”就可以了。看到剛才生成的圖片C文件了,直接將代碼添加進C語言就可以了。
尋求一彩色圖像取模軟件,要求生成C語言數組(例如黑色為0x0000,白色為0xffff,不是0x00和0xff)
不清楚你的“取模”是什麼意思。
黑色為0x0000,白色為0xffff 你設 灰度 顏色範圍 為 unsigned short int 就可以了。
RGB 轉 灰色, 計算式 為:
Y = 0.2126R + 0.7152G + 0.0722B
你想擴展為 0xffff,乘一個比例係數就可以了。這個程序你可以自己寫。
============
另一種思路 是把 RGB 轉 HSL 顏色體系,然後 把 H 抽出來,把它 放大到 0x0000 – 0xffff 就可以了。變回來時,另設 S=1.0 L=0.5 就可以了。 H 的均勻變化 是彩虹。
============
軟件,你一定要軟件,可以用 MATLAB 和它的 圖像處理工具箱。
============
我的 RGB 轉 HSL,HSL 轉 RGB 程序:
(規1化的程序,直接放大就滿足你的要求)
// nomorized
void RGB2HSL (unsigned char rr, unsigned char gg, unsigned char bb, double *h, double *s, double *L)
{
double r,g,b;
double v,m,vm,r2,g2,b2;
r = (double) rr / 255.0;
g = (double) gg / 255.0;
b = (double) bb / 255.0;
*h = 0; *s = 0; *L = 0;
v = r; if (g v) v = g; if (b v) v = b; //get max
m = r; if (g m) m = g; if (b m) m = b; //get min
*L = (m + v) / 2.0; // init L
if ( v == m) {
*h = 0; *s = 0;
} else {
double d,e=0.0;
if (g b) e=6.0;
d = v – m;
if (*L 0.5) {*s=d /(2.0 – v – m); } else { *s= d /(v + m);};
if (r == v) {
*h = (g-b)/d+e;
} else if (g == v){
*h=(b-r)/d +2.0;
} else if (b==v){
*h = (r-g) / d + 4.0;
}
*h /=6.;
};
}
// 程序作者:金色潛鳥(L_o_o_n_i_e)
void HSL2RGB(double h, double s, double L,unsigned char *rr, unsigned char *gg, unsigned char *bb)
{
double v,m,sv, vs0, c1, c2,xiaoshu;
double r,g,b;
int ih;
r = L; g = L;b = L;
if (L = 0.5) v = L * (1.0 + s); else v = L + s – L * s;
if (v 0)
{
m = L + L – v;
sv = (v – m ) / v;
h = h * 6.0;
ih = (int)h;
xiaoshu = h – ih;
vs0 = v * sv * xiaoshu;
c1 = m + vs0;
c2 = v – vs0;
switch (ih)
{
case 0: r = v; g = c1; b = m; break;
case 1: r = c2; g = v; b = m; break;
case 2: r = m; g = v; b = c1; break;
case 3: r = m; g = c2; b = v; break;
case 4: r = c1; g = m; b = v; break;
case 5: r = v; g = m; b = c2; break;
}
}
*rr = (int) (r * 0xff);
*gg = (int) (g * 0xff);
*bb = (int) (b * 0xff);
}
原創文章,作者:RFGQ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/131039.html