| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1209 人关注过本帖
标题:[求助]为什么编译出错呢?是不是还要什么头文件呢?
只看楼主 加入收藏
linlin
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2006-3-14
收藏
 问题点数:0 回复次数:7 
[求助]为什么编译出错呢?是不是还要什么头文件呢?
请指点:为什么编译出错呢?是不是还要什么头文件呢?
#include <iostream>
using namespace std;
unsigned char rol(unsigned char val)//这是实现左旋的函数
{
int highbit;
if(val & 0x80)
highbit=1;
else
highbit=0;
val<<=1;
val|=highbit;
return val;
}
unsigned char ror(unsigned char val)//这是实现右旋的函数
{
int lowbit;
if(val & 1)
lowbit=1;
else
lowbit=0;
val>>=1;
val |=(lowbit << 7)
return val;
}
int main()
{
unsigned char c,ch,f,g;
c='a';
ch='b';
f=unsigned char rol(c);
g=unsigned char ror(b);
std::cin.get();
return 0;
}
搜索更多相关主题的帖子: 头文件 val char highbit unsigned 
2006-03-20 18:27
linlin
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2006-3-14
收藏
得分:0 
以下是引用linlin在2006-3-20 18:27:00的发言:
请指点:为什么编译出错呢?是不是还要什么头文件呢?
#include <iostream>
using namespace std;
unsigned char rol(unsigned char val)//这是实现左旋的函数
{
int highbit;
if(val & 0x80) 出错 // D:\新建文件夹\未命名1.cpp `ox80' undeclared (first use this function)
highbit=1;
else
highbit=0;
val<<=1;
val|=highbit;
return val;
}
unsigned char ror(unsigned char val)//这是实现右旋的函数
{
int lowbit;
if(val & 1)
lowbit=1;
else
lowbit=0;
val>>=1;
val |=(lowbit << 7)
return val;
}
int main()
{
unsigned char c,ch,f,g;
c='a';
ch='b';
f=unsigned char rol(c);出错 D:\新建文件夹\未命名1.cpp expected primary-expression before "unsigned"
g=unsigned char ror(b);
std::cin.get();
return 0;
}

谁知道错在哪吗,


woyaochengshuyidianle 我真的什么也不会
2006-03-20 20:38
woodhead
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:1124
专家分:0
注 册:2005-7-18
收藏
得分:0 

[CODE]int main()
{
unsigned char c,ch,f,g;
c='a';
ch='b';
f=rol(c);
g=ror(ch);
system("pause");
return 0;
}[/CODE]

程序饿目的? 加密?


2006-03-20 20:43
linlin
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2006-3-14
收藏
得分:0 
以下是引用woodhead在2006-3-20 20:43:00的发言:

[CODE]int main()
{
unsigned char c,ch,f,g;
c='a';
ch='b';
f=rol(c);
g=ror(ch);
system("pause");
return 0;
}[/CODE]

程序饿目的? 加密?

不是的,是要实现位的移位功能,利用左旋和右旋函数的目的就是为了:在一端移掉的位插入到另一端。这些是位的运算。


woyaochengshuyidianle 我真的什么也不会
2006-03-20 20:56
linlin
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2006-3-14
收藏
得分:0 
if(val & 0x80) 出错 // D:\新建文件夹\未命名1.cpp `ox80' undeclared (first use this function)
产生这个错误该怎么出理呢?

woyaochengshuyidianle 我真的什么也不会
2006-03-20 20:58
阿甘
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2005-6-9
收藏
得分:0 
0x80是什么?是机器语言吗?编译器显然不认识!
2006-03-20 22:35
linlin
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2006-3-14
收藏
得分:0 


谢谢
0x80是十六进制,他的二进制是128。
当我把程序中的if(val & 0x80)改成if(val & 128)就可以了,我想问一下,我用了0x来告诉编译器是十六进制不行吗?


woyaochengshuyidianle 我真的什么也不会
2006-03-20 22:51
longjian7913
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-3-21
收藏
得分:0 
你说的两处错误如下:
1>>if(val & 0x80) 出错 // D:\新建文件夹\未命名1.cpp `ox80' undeclared (first use this function)

解释:你程序中的0x80输成了ox80,改正即可,即把ox80改成0x80,请看你的错误提示是不是ox80?

2>>f=unsigned char rol(c);出错
D:\新建文件夹\未命名1.cpp expected primary-expression before "unsigned"

解释:你把这语句改成f=(unsigned char) rol(c)即可,这是强制类型的转换.

注:好个程序还有一处错误,就是g=unsigned char ror(b),应改成g=(unsigned char) ror(ch);因为你的b变量没有定义,看你的意思应该是ch吧
2006-03-21 00:58
快速回复:[求助]为什么编译出错呢?是不是还要什么头文件呢?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017558 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved