现在有时间玩excel 奇偶判断断;

判断奇数偶数的时候用%而不是/
#include&cstdio&
#include&iostream&
#include&cstring&
#include&cmath&
#include&cstdlib&
int main(){
while(scanf("%d",&n)!=EOF){
int count=0;
for(int i=0;i&n;i++){
//scanf("%lf",&a);
if(a%2==0){
if(count&(n-count)){
cout&&"NO"&&
cout&&"YES"&&
}比较奇数偶数的个数
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!奇偶校验你会用吗?
> 奇偶校验你会用吗?
奇偶校验你会用吗?
  在工作中调试通讯时,发现有诸多的干扰数据出现,想想串口通讯除去外部硬件电路去除干扰外,还可以通过软件来滤掉干扰数据,于是我就想到了串口通讯中的。印象中,在编写F030程序初始化串口时,对其配置的时候有一个属性是否使用奇偶检验。我想,只需要简单修改一下这一个属性,程序便大功告成了。可是结果真的是我所预料的吗?请看下文。本文引用地址:
  我们先来看一下F030的串口初始化程序,程序清单如下:
  USART_InitStructure.USART_BaudRate = 115200; 波特率
  USART_InitStructure.USART_WordLength = USART_WordLength_8b;数据位8位
  USART_InitStructure.USART_StopBits = USART_StopBits_1;停止位1位
  USART_InitStructure.USART_Parity = USART_Parity_No;位无
  USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_N无硬件流控制
  USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;使能发送与接收功能
  USART_Init(USART1, &USART_InitStructure);初始化串口1
  上面这段程序没有特别之处,广泛示例于各大论坛,教程,而笔者也只是将上面位这一行,修改为了USART_InitStructure.USART_Parity = USART_Parity_O即奇校验。然后,重新编译,下载,一切正常。可是&&
  从图1可以清楚看到,在未修改之前,串口能正常接收到字符串,但是在修改之后,取而待之的都是乱码。无论PC机软件配置为奇校验,偶检验,还是无奇偶校验均无正确显示。顿时,整个人的感觉就不好了。555&&
  笔者也是借此机会深入了解了一下奇偶校验,与F030芯片上的实现。现在将奇偶校验认识的三大误区及应用实现分享给大家。
  误区一:修改一下串口配置参数就可以了吗?
  这个误区我觉得应该放在第一位,主要因为笔者首先就这样认为的。通过上面的实例,也已经充分说明仅修改一个属性是无法实现的。通过仔细阅读编程手册,发现在配置奇偶校验属性后,必须要修改数据位为9位,否则PC端无法接收。以下是笔者查询到的资料(STM32F10xxx参考手册):
  通过上面的截图(图2),我们可以看到,如果将串口配置为了奇校验,且数据位为8位,那么数据位的位7将被替换为奇检验位&&也就是说,原有的数据被破坏了。这也就证明了图1为什么会出现乱码的现象了。
  既然发现了错误,那就要解决。通过查询相关文档,与详细阅读STM32芯片编程手册,最后通过以下配置即可实现正常发送,与奇偶校验。程序配置清单如下:
  USART_InitStructure.USART_WordLength = USART_WordLength_9b;
  USART_InitStructure.USART_Parity = USART_Parity_O
  如果将数据位数扩展成9位,那么奇偶校验位将占用新插入的位8,也就不必破坏原数据。通过编译与下载程序,并在PC机上验证,此方法确实可行,PC机数据正常接收,再次重现&Hello EEPW&。
  误区二:PC机串口软件无法实现奇偶校验发送?
  笔者在查阅资料的时候发现有好多网友都有这样的观念,但是笔者的PC机软件的确是可以发送奇偶检验的。通过多次实验笔者发现,SScomm串口工具软件v3.2版本无法实现,但SScomm版本v4.2可以实现。
  虽然说是实现奇偶校验,但是仅限发送时会发送严格按照配置要求发送,即会发送奇偶校验位,从而下位机将正常接收。但是接收的时候,并不表示奇偶校验位错误,上位机不会接收数据&&上位机的具体实现也是这样的。上位机不管奇偶校验是否正确,仍然会正常显示接收的数据,这个并不影响我们实际应用,也只是说明一下而已。
  误区三:STM32F030配置了奇偶校验位,就不会接收到错误的字节了
  很遗憾,这个也是非常大的误区。通过在线仿真的数据抓取。STM32F030配置为奇校验,无论上位配置了哪一项,均能正常接收到数据。但是,还是有不同的地方的。如果奇偶校验开启后,当发生奇偶校验错误时,会触发硬件奇偶校验失败事件,如果开启了奇偶校验失败中断,那么硬件将进入奇偶校验中断。
  以上三个误区笔者已经全部分析完毕,那么下面我们将如何针对STM32F030芯片的特性来实现串口通讯奇偶校验呢?
  在下位机软件上,通过误区一的分析,我们需要将下位机STM32F030的串口配置为数据位9位,奇检验或偶检验,然后开启奇偶校验位异常中断。再通过奇偶校验异常中断中将此次接收到的数据丢弃,以实现错误字节的滤除。这里要特别注意,开启奇偶校验中断一定要优先配置,至少要在接收中断开启之前,具体原因笔者尚未能查询到。
  至于硬件做了些什么,硬件仅仅填充了奇偶校验位,并提示了错误信息,其并不会为我们主动去除接收的数据。
  对于PC机上的串口软件,我们并不需要设置成为数据位9位,而是必须配置成数据位8位&&当然,在笔者下载的几款串口工具软件里均无法配置成数据9位。相应的奇偶校验位需要与下位机相同即可。
  经过以上的软件配置,现在基于STM32F030芯片的通讯已经工作正常了,我的经验也暂时总结到这里了。
分享给小伙伴们:
我来说两句……
微信公众号二
微信公众号一今天有人问我判断一个数的奇偶【c#吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:120,536贴子:
今天有人问我判断一个数的奇偶收藏
判断一个数是奇数还是偶数,我想了半天就想出来了一个取模的... ...还有什么方法啊。
c#教程,博为峰IT培训免费试听,0元入学,现在更有多重优惠,仅限今天!博为峰,真正的为年轻人服务的企业,14年间培训15万余名it工程师,成绩斐然!
取模 妥妥的呀。 也就是 除2取余数嘛。你效率高一点也可以 做位运算
(数字 & 0x01)
结果为1的是奇数。为0的是偶数。
对于 2 进制来说。 从低位向高位的顺序是 1,2,4,8,16,32,64
这样的处理顺序。也就是10进制
1000也就是 一个数字
0001 做 & 的运算。最后结果, 也就取决于 那个数字的 最低位。偶数的最低位都是 0 的,
奇数的最低位是 1 的。0x01
是 16进制的写法, 相当于 二进制的
还有木有其它方法
有其他方法的,我比如这样:声明一个布尔值存储是不是偶数=true,为true则是偶数,false是奇数。声明一个long值=0。开启一个无限循环{判断用户输入的值是否为你声明的那个,如果是,
{现在,那个布尔值是true就是偶,反之位奇数
{那个布尔值如果是true就等于false,反之亦然long值加一
}}虽然很麻烦,也是其他的方法
我又想了个,就是把他转成string类型,然后取个位数,如果个位数等于1,3,5,7,9那么就为奇数。
console.writeline((x%2==1)?&是奇数&:&是偶数&
最后的括号没打上,爪机悲剧
把输入的数N进行一次1-N的循环,若出现i==N-i,则是偶数,否则为奇数!
这是我五次判断1-1,000,000奇偶的用时(单位毫秒)....前面是%2法.后面是ToString()法.7.0004532.03047.0004535.03064.0003532.03048.0004558.03198.0004530.0303个人觉得ToString()应该是截字符串的时候用时太长..
最简单的方法 做位运算
我也感觉在计算机里做位运算是效率最高的。
那个数%2等于1就是奇数,否则偶数------From WindowsPhone 7.8
登录百度帐号技巧一:判断奇偶_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
技巧一:判断奇偶
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢使用位与方式对奇偶数进行快速判断在计算机中对于数值的表示是用二进制的方式,所以对于奇偶数的判断方式如下:if(temp % 2 == 0)
可以写改写为效率更高的位运算方式:if(temp & 1)
这是因为,使用 temp & 1 进行位与操作,判断 temp 的末位是否为 1。因此当 temp 为奇数的时候时 temp & 1 返回 1,if 条件成立。当 temp 为偶数时,其二进制末位为 0 ,temp & 1 返回 0 。使用位与操作进行奇偶数的判断可以提高一定的写执行速度。另外在使用过程中需要注意的是,由于 “==” 的优先级比 “&”大,具体可以查看: 。所以进行就判断的时候要注意对 “==” 左边的运算表达式加上括号。即:if((temp & 1) == 0) {
// 判断是否为奇数
if(temp & 1){
// 判断是否为偶数
0添加评论分享收藏文章被以下专栏收录}

我要回帖

更多关于 java 判断奇偶 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信