社区
C语言
帖子详情
vc++下实验的关于32位系统下的数据有效位数问题
帅气好男人_Jack
2013-05-24 06:16:15
我的电脑室32位的,按理说一个int型数据是4个字节,能存放2的32次方,其实不然,请大家帮我看看,这是为什么?上传图片不行,代码贴上:
#include <stdio.h>
void main()
{
unsigned int a;
a = 0xffffffff;
printf("%d %d\n",a,sizeof(a));
}
显示结果:
-1 4
press any key to continue……
...全文
82
3
打赏
收藏
vc++下实验的关于32位系统下的数据有效位数问题
我的电脑室32位的,按理说一个int型数据是4个字节,能存放2的32次方,其实不然,请大家帮我看看,这是为什么?上传图片不行,代码贴上: #include void main() { unsigned int a; a = 0xffffffff; printf("%d %d\n",a,sizeof(a)); } 显示结果: -1 4 press any key to continue……
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
帅气好男人_Jack
2013-05-24
打赏
举报
回复
原来是这样!花个人大雾1谢谢
AnYidan
2013-05-24
打赏
举报
回复
引用 1 楼 u010211892 的回复:
把%d改成%u试试
d,i ---- int; signed decimal notation. u ---- int; unsigned decimal notation.
lsjfdjoijvtghu
2013-05-24
打赏
举报
回复
把%d改成%u试试
课程设计
实验
——八皇后_V
C++
游戏
八皇后
问题
是一个古老而著名的
问题
,是回溯算法的典型例题。该
问题
是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。 对于八皇后
问题
的实现,如果结合动态的图形演示,则可以使算法的描述更形象、更生动,使教学能产生良好的效果。下面是用Turbo C实现的八皇后
问题
的图形程序,能够演示全部的92组解。八皇后
问题
动态图形的实现,主要应解决以下两个
问题
。 (1)回溯算法的实现 (a)为解决这个
问题
,我们把棋盘的横坐标定为i,纵坐标定为j,i和j的取值范围是从1到8。当某个皇后占了位置(i,j)时,在这个位置的垂直方向、水平方向和斜线方向都不能再放其它皇后了。用语句实现,可定义如下三个整型数组:a[8],b[15],c[24]。其中: a[j-1]=1 第j列上无皇后 a[j-1]=0 第j列上有皇后 b[i+j-2]=1 (i,j)的对角线(左上至右下)无皇后 b[i+j-2]=0 (i,j)的对角线(左上至右下)有皇后 c[i-j+7]=1 (i,j)的对角线(右上至左下)无皇后 c[i-j+7]=0 (i,j)的对角线(右上至左下)有皇后 (b)为第i个皇后选择位置的算法如下: for(j=1;j<=8;j++) /*第i个皇后在第j行*/ if ((i,j)位置为空)) /*即相应的三个数组的对应元素值为1*/ {占用位置(i,j) /*置相应的三个数组对应的元素值为0*/ if i<8 为i+1个皇后选择合适的位置; else 输出一个解 } (2)图形存取 在Turbo C语言中,图形的存取可用如下标准函数实现: size=imagesize(x1,y1,x2,y2) ;返回存储区域所需字节数。 arrow=malloc(size);建立指定大小的动态区域位图,并设定一指针arrow。 getimage(x1,y1,x2,y2,arrow);将指定区域位图存于一缓冲区。 putimage(x,y,arrow,copy)将位图置于屏幕上以(x,y)左上角的区域。 (3)程序清单如下 #include
#include
#include
#include
char n[3]={'0','0'};/*用于记录第几组解*/ int a[8],b[15],c[24],i; int h[8]={127,177,227,277,327,377,427,477};/*每个皇后的行坐标*/ int l[8]={252,217,182,147,112,77,42,7}; /*每个皇后的列坐标*/ void *arrow; void try(int i) {int j; for (j=1;j<=8;j++) if (a[j-1]+b[i+j-2]+c[i-j+7]==3) /*如果第i列第j行为空*/ {a[j-1]=0;b[i+j-2]=0;c[i-j+7]=0;/*占用第i列第j行*/ putimage(h[i-1],l[j-1],arrow,COPY_PUT);/*显示皇后图形*/ delay(500);/*延时*/ if(i<8) try(i+1); else /*输出一组解*/ {n[1]++;if (n[1]>'9') {n[0]++;n[1]='0';} bar(260,300,390,340);/*显示第n组解*/ outtextxy(275,300,n); delay(3000); } a[j-1]=1;b[i+j-2]=1;c[i-j+7]=1; putimage(h[i-1],l[j-1],arrow,XOR_PUT);/*消去皇后,继续寻找下一组解*/ delay(500); }} int main(void) {int gdrive=DETECT,gmode,errorcode; unsigned int size; initgraph(&gdrive,&gmode,""); errorcode=graphresult(); if (errorcode!=grOk) {printf("Graphics error\n");exit(1);} rectangle(50,5,100,40); rectangle(60,25,90,33); /* 画皇冠 */ line(60,28,90,28);line(60,25,55,15); line(55,15,68,25);line(68,25,68,10); line(68,10,75,25);line(75,25,82,10); line(82,10,82,25);line(82,25,95,15); line(95,15,90,25); size=imagesize(52,7,98,38); arrow=malloc(size); getimage(52,7,98,38,arrow); /* 把皇冠保存到缓冲区 */ clearviewport(); settextstyle(TRIPLEX_FONT, HORIZ_DIR, 4); setusercharsize(3, 1, 1, 1); setfillstyle(1,4); for (i=0;i<=7;i++) a=1; for (i=0;i<=14;i++) b=1; for (i=0;i<=23;i++) c=1; for (i=0;i<=8;i++) line(125,i*35+5,525,i*35+5); /* 画棋盘 */ for (i=0;i<=8;i++) line(125+i*50,5,125+i*50,285); try(1); /* 调用递归函数 */ delay(3000); closegraph(); free(arrow); } 二、循环实现 Java /* * 8皇后
问题
: * *
问题
描述: * 在一个8×8的棋盘里放置8个皇后,要求每个皇后两两之间不相冲突 *(在每一横列,竖列,斜列只有一个皇后)。 * *
数据
表示: * 用一个 8 位的 8 进制数表示棋盘上皇后的位置: * 比如:45615353 表示: * 第0列皇后在第4个位置 * 第1列皇后在第5个位置 * 第2列皇后在第6个位置 * 。。。 * 第7列皇后在第3个位置 * * 循环变量从 00000000 加到 77777777 (8进制数)的过程,就遍历了皇后所有的情况 * 程序中用八进制数用一个一维数组 data[] 表示 * * 检测冲突: * 横列冲突:data == data[j] * 斜列冲突:(data+i) == (data[j]+j) 或者 (data-i) == (data[j]-j) * * 好处: * 采用循环,而不是递规,
系统
资源占有少 * 可计算 n 皇后
问题
* 把
问题
线性化处理,可以把
问题
分块,在分布式环境下用多台计算机一起算。 * * ToDo: * 枚举部分还可以进行优化,多加些判断条件速度可以更快。 * 输出部分可以修改成棋盘形式的输出 * * @author cinc 2002-09-11 * */ public class Queen { int size; int resultCount; public void compute ( int size ) { this.size = size; resultCount = 0; int data[] = new int[size]; int count; // 所有可能的情况个数 int i,j; // 计算所有可能的情况的个数 count = 1; for ( i=0 ; i
问题的Qbasic版的解决方案 10 I = 1 20 A(I) = 1 30 G = 1 40 FOR K = I - 1 TO 1 STEP -1 50 IF A(I) = A(K) THEN 70 60 IF ABS(A(I) - A(K)) <> I - K THEN 90 70 G = 0 80 GOTO 100 90 NEXT K 100 IF I <> 8 THEN 180 110 IF G = 0 THEN 180 120 FOR L = 1 TO 8 130 PRINT USING “##”; A(L); 140 NEXT L 150 PRINT “*”; 160 M = M + 1 170 IF M MOD 3 = 0 THEN PRINT 180 IF G = 0 THEN 230 190 IF I = 8 THEN 230 200 I = I + 1 210 A(I) = 1 220 GOTO 30 230 IF A(I) < 8 THEN 270 240 I = I - 1 250 IF I = 0 THEN 290 260 GOTO 230 270 A(I) = A(I) + 1 280 GOTO 30 290 PRINT 300 PRINT “SUM=”; USING “##”; M; 310 PRINT 320 END 四、八皇后
问题
的高效解法-递归版 //8 Queen 递归算法 //如果有一个Q 为 chess=j; //则不安全的地方是 k行 j位置,j+k-i位置,j-k+i位置 class Queen8{ static final int QueenMax = 8; static int oktimes = 0; static int chess[] = new int[QueenMax];//每一个Queen的放置位置 public static void main(String args[]){ for (int i=0;i
= 0) && (chess+k < QueenMax) ) qsave[chess+k]=false; if ( (chess-k >= 0) && (chess-k < QueenMax) ) qsave[chess-k]=false; i++; } //下面历遍安全位 for(i=0;i
江苏科技大学苏州理工学院《计算机程序设计基础实践V
C++
》
实验
报告
江苏科技大学 (张家港)
实验
报告 专业班级: 2014级机制专业 1班 课程名称: 计算机程序设计基础实践V
C++
学 号: 1445721111 学生姓名: 李加其 指导教师: 孙 娜 2015年6月 一、函数编程: 1.求素数
问题
:定义函数判断一个整数是否为素数,求300以内的素数,每行3个数形式输出。 代...
V
c++
6.0左右位移运算的规律(上篇)
证明V
c++
6.0左右位移运算的规律。 进行
实验
的有 有无符号的短长整型 有无符号的符号型 类型标识符 (字节) int(4) char (1) short int(2) unsigned char(1) unsigned short(2) unsigned long(4) 另外:Vc
系统
中默认有符号位数;Vc
系统
中符号位数 向右移后原位会自动补1而向左移后就是下一位数补上;位移运算时移动的是存储在机器里的补码。 观点:(1)它们的左右位移运算规则是先化成有符号的整型再进行运算,但是移动
2016-2017学年第二学期
C++
第五章(1)
C++
上机课参考答案 本系列文章供北京邮电大学信通院及数媒学院「
C++
高级程序语言设计」上机课学生参考。 C 上机课参考答案 2016-2017学年第二学期C第五章1 VC
实验
51 温度转换 VC
实验
52 数字分离 VC
实验
55 评分统计II2016-2017学年第二学期
C++
第五章(1)1509.V
C++
实验
5.1 温度转换//V
C++
实验
5.1 温度转换 /* 题目描述 编写函数,把华氏温
C++
毕业设计——基于V
C++
+BP神经网络+车牌识别的车牌定位和识别
系统
设计与实现(毕业论文+程序源码)——车牌定位和识别
系统
车牌识别是现代智能交通
系统
中的重要组成部分之一,应用十分广泛。本文对车牌识别
系统
中的车牌定位,车牌字符分割和车牌字符识别这三个主要技术进行了研究。本文针对复杂环境下的车牌定位,提出了基于颜色的BP神经网络的定位算法,通过车牌底色库(蓝底)训练网络,使之具备区分蓝色与非蓝色能力,从而实现车牌的定位。车牌字符分割采用改进的垂直投影算法,可以较好、较快地分割出车牌字符的位置。最后字符识别部分仍然采用基于BP神经网络算法,通过建立字符库,训练网络使之具有区分34个不同字符的能力,最终实现车牌字符的识别。
C语言
69,371
社区成员
243,081
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章