本文目录一览:
- 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);
}