unsigned char 长度Max=255,为什么不等于256

线性ccd图像处理程序_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
线性ccd图像处理程序
上传于||文档简介
&&针​对​飞​思​卡​尔​智​能​车​竞​赛​光​电​组
大小:6.69KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢刚学C语言 请问ASCII码值为128-255字符型数据转为整型变量时得到的是-128--1的值 怎样算的 谢谢_百度知道
刚学C语言 请问ASCII码值为128-255字符型数据转为整型变量时得到的是-128--1的值 怎样算的 谢谢
因为一个char的大小是一个byte即8个bit,一共可以表示2的8次方即256个数字0-255但是char分为signed和unsigned两种形式,即是否有正负之分如果是signed就是有正负号的,在机器码中8位二进制bit就需要占用一个作为区别正负号的标记,分别用1或0表示,那么剩下的7个bit能够表示0-127的数字,由于2的8次方一共是256个数字,可以得到负数范围内有128个数字,即一个signed char能表示从-128-127的数字与之相对的,unsigned char即表示从0-255的值,由于ASCII码没有负值,而且一般的ASCII码只需要使用0-127就足够了,所以剩下的那128个字符就组成了extended ASCII,当然,一般是没有什么作用的,也可以看到这个范围的符号一般都是些稀奇古怪的,但是你将它赋值到这个范围就引起了这个问题虽然定义一个char变量生成的究竟是unsigned char还是signed char和你具体使用的环境有关,但一般的INTEL计算机都是生成signed char,如果你不能确定可以使用limits.h中提供的常量来确定,当然int long 等等也能够用相同方式查看,如果是float的话用float.h查看,具体的可以查询library的说明,程序如下,自己运行看看吧#include &stdio.h&#include &limits.h&main(){int a=CHAR_MIN;int b=CHAR_MAX;printf(&%d %d\n&,a,b); //Print the minimum value and maximum value of data type char}现在我们已经明白了,用8位bit表示的signed char是无法表示超过127的数字的,所以呢,当你赋予变量一个超过127的值的时候,它就会自动变回负值的最小值并向上递加,可以想象成一个圆环,原理在于CPU中只存在加法器,所以如果不能循环,你就没法做减法了,具体的你可以随便买一本微机原理看看,我推荐CSAPP,如果你想要具体研究C语言的话,可以看看C语言圣经K&R,多用用LINUX
其他类似问题
为您推荐:
0ASCii值16ASCII值转换整形数据简单要字符代表ASCII值减0代表ASCII值减16转换整形数据希望能解答疑惑
ascii码的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁char默认是signed的,为什么还climits里面还有CHAR_MAX和SCHAR_MAX,int默认也是signed,为什么就没有?_百度知道
char默认是signed的,为什么还climits里面还有CHAR_MAX和SCHAR_MAX,int默认也是signed,为什么就没有?
CHAR_MAXSCHAR_MAX两重复运行结相同
提问者采纳
limits.h 先定义 SCHAR_
CHAR_ 变化取值要看别参数CHAR_MAXSCHAR_MAX 数值能能 基本定义:#define SCHAR_MIN
#define SCHAR_MAX
#define UCHAR_MAX
0xff 没定义 _CHAR_UNSIGNED :
CHAR_MAX 等于
SCHAR_MAX定义 _CHAR_UNSIGNED:
UCHAR_MAX 符号 int
short int, int, long int 三种 别定义:SHRT_, INT_,LONG_符号 int
unsigned .... 三种 别定义:USHRT_, UINT_,
ULONG_ 外int
(64位整型)
提问者评价
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
UID空间积分0 积分4912阅读权限50帖子精华可用积分4912 信誉积分100 专家积分20 在线时间1689 小时注册时间最后登录
小富即安, 积分 4912, 距离下一级还需 88 积分
帖子主题精华可用积分4912 信誉积分100 专家积分20 在线时间1689 小时注册时间最后登录
论坛徽章:0
原帖由 delimy 于
11:20 发表
你所说的工作原理不过是另一层次上的标准罢了。C标准是指导编译器如何工作,语言则是两个层面之间的桥梁。
这个圈子根本离不开标准。指令级别的标准比高级语言的标准容易理解多了。
btw:至少在理学工程学范 ...
学海无涯啊~~~~~~~
&&指令级别的标准比高级语言的标准容易理解多了
不敢苟同哈
举例:
int a =1;
int b =2;
int c =3;
result = result * a * b *
result = result * (a * (b * c));
result = (result * a) * (b * c);复制代码
上述3个乘法操作性能有什么不同? 我认为高级语言的标准是解释不了的。
C调 ---- C语言
都是最喜欢的
UID空间积分806 积分10086阅读权限90帖子精华可用积分10086 信誉积分714 专家积分259 在线时间6335 小时注册时间最后登录
大富大贵, 积分 10086, 距离下一级还需 9914 积分
帖子主题精华可用积分10086 信誉积分714 专家积分259 在线时间6335 小时注册时间最后登录
论坛徽章:0
原帖由 zx_wing 于
11:40 发表
学海无涯啊~~~~~~~
&&指令级别的标准比高级语言的标准容易理解多了
不敢苟同哈
result = result * a * b *
result没有初始化
一般的编译器编译后的结果都会优化成: result *= 6,没区别
A problem well described is a problem half solved!
UID494094空间积分0 积分416阅读权限20帖子精华可用积分416 信誉积分104 专家积分0 在线时间8 小时注册时间最后登录
稍有积蓄, 积分 416, 距离下一级还需 84 积分
帖子主题精华可用积分416 信誉积分104 专家积分0 在线时间8 小时注册时间最后登录
论坛徽章:0
原帖由 zx_wing 于
11:40 发表
学海无涯啊~~~~~~~
&&指令级别的标准比高级语言的标准容易理解多了
不敢苟同哈
result = result * a * b *
程序的性能不是标准决定的,是其实现决定的(编译器和程序本身),标准给编译器留下了许多实现的余地,比如这个例子中,不同的编译器可能会生成不同的汇编代码,也可能会作同样的优化;但是,另一方面标准又对某些实现做了限定。比如:
(1.0 + (-3)) + (unsigned)1;
1.0 + (-3 + (unsigned)1);复制代码
编译器不应该把他们优化成相同的实现,因为,按照标准来理解,两个表达式的值是不同的。。。
A New GNU/Linux Distribution.
UID354997空间积分0 积分134阅读权限10帖子精华可用积分134 信誉积分100 专家积分0 在线时间1 小时注册时间最后登录
白手起家, 积分 134, 距离下一级还需 66 积分
帖子主题精华可用积分134 信誉积分100 专家积分0 在线时间1 小时注册时间最后登录
论坛徽章:0
原帖由 zx_wing 于
11:40 发表
学海无涯啊~~~~~~~
&&指令级别的标准比高级语言的标准容易理解多了
不敢苟同哈
result = result * a * b *
我的意思是说,给出一个指令序列,很容易推断其行为,因为指令之间没什么影响,只要按照指令的定义就有精确结果了。但是给出一段高级程序,根据标准推断其结果要难得多,分析语义比照搬定义要困难。所以会有人问一个复杂的声明的含义,但没人问指令序列得怎么执行。
C语言抽象机到某具体指令集机器的映射不是唯一的,C标准只是给出了其容许集。从C标准角度分析程序,就不要放进任何ABI层面的东西(甚至包括栈和函数调用约定),我们只考虑输入、输出、副作用。这应该是*学习*C语言时的态度,是为了仅凭源程序就能推断行为。反之,当需要考虑C抽象机之外的东西,如程序中出现未定义的行为、程序执行效率时,必然要涉及到某个C实现,这时视角要转移到体系结构的标准上来。
你给的例子结果未定义,就是说全是0也没什么不可以的。如果result初始过,编译时就可以把结果算好放进去,一条算术指令也不需要。
UID787701空间积分0 积分79阅读权限10帖子精华可用积分79 信誉积分100 专家积分0 在线时间3 小时注册时间最后登录
白手起家, 积分 79, 距离下一级还需 121 积分
帖子主题精华可用积分79 信誉积分100 专家积分0 在线时间3 小时注册时间最后登录
论坛徽章:0
result = result * a * b *
莫非是左深/右深连接树的问题?小问一下?
shut up & code
UID空间积分0 积分4912阅读权限50帖子精华可用积分4912 信誉积分100 专家积分20 在线时间1689 小时注册时间最后登录
小富即安, 积分 4912, 距离下一级还需 88 积分
帖子主题精华可用积分4912 信誉积分100 专家积分20 在线时间1689 小时注册时间最后登录
论坛徽章:0
原帖由 delimy 于
14:58 发表
我的意思是说,给出一个指令序列,很容易推断其行为,因为指令之间没什么影响,只要按照指令的定义就有精确结果了。但是给出一段高级程序,根据标准推断其结果要难得多,分析语义比照搬定义要困难。所以会有人问 ...
是我的例子没给好,忘了初始化result了。
但是我正是想通过这个例子说明指令的意义并不是大家想象那么简单的。就像上面的例子一样,先不考虑我的笔误。
各位看到的指令序列称为ISA(Instruction Set Architecture),这个是处理器提供给程序员使用的。但是,处理器并不是真正按照ISA的指令序列来执行的,这就是现代处理器中的乱序和流水线(这个问题太复杂了,我待会给出参考资料,有兴趣的朋友自己看)。
假设这里result初始化过,在并行化程度高的处理器上(现代处理器大都有这个能力),会有如下不同:
result = ((result * a) * b )*(不好意思,我刚才发现我又把例子给错了,改正)
这个例子中每次乘法操作都会打断处理器的流水线操作,因为它需要等待result求值,这个时候处理器会stall住,等待求值完成。所以上面的表达式会stall三次。(我记不清因此会消耗的时钟周期了,应该是12)
result = result * (a * (b * c));
这个例子中,只会等待求值一次,消耗应该是4个时钟周期。
result = (result * a) * (b * c);
等待求值2次,大概8个时钟周期了。
所以说程序中小的改动会对性能造成大的影响,设想上述表达式被10亿次的执行。
这些都是语言标准无法给出的,所以说重要的还是要理解计算机怎么工作。即使你工作是写应用程序,语言标准对你很重要,但多了解一些底层一点的细节还是有帮助的。
上面的例子不是我乱举的,我记得是以前在CSAPP这本书里看到的一个例子。
&&我的意思是说,给出一个指令序列,很容易推断其行为,因为指令之间没什么影响
这是不对的,关键在于处理器的预测执行和流水线处理。这也是可以举例子的。如果你有兴趣,可以站内给我发消息,我们单独讨论,我就不在这里发了(:em11:主要是我怕说错了误导大家,这个问题比较难搞)。
最后是一些可以参考的资料:
CSAPP,中文译名《深入理解计算机系统》,非常好的书。
《Intel 64 and IA-32 Architectures Software Developer's Manual》,这个就是x86指令标准的,可以到intel网站下载电子版。
不过这个比c标准长多了,6本数千页。
C调 ---- C语言
都是最喜欢的
UID787701空间积分0 积分79阅读权限10帖子精华可用积分79 信誉积分100 专家积分0 在线时间3 小时注册时间最后登录
白手起家, 积分 79, 距离下一级还需 121 积分
帖子主题精华可用积分79 信誉积分100 专家积分0 在线时间3 小时注册时间最后登录
论坛徽章:0
不过虽然话是这么说的,但是实际上,对于一个高度优化过的编译器来讲,表现出来的行为可能正是前面的贴子所说的,会把常量表达式展开...当然,这个只是就这个例子而言,如果不能展开成常量表达式,在代码级别的表达式中左深连接树从表面上来看是最高效的(楼上给的这个例子)而似乎右深连接树是最不高效的(给错的那个例子)而型如(a*b)*(c*d)这样的要依据编译器的实现来看了
shut up & code
UID空间积分0 积分4912阅读权限50帖子精华可用积分4912 信誉积分100 专家积分20 在线时间1689 小时注册时间最后登录
小富即安, 积分 4912, 距离下一级还需 88 积分
帖子主题精华可用积分4912 信誉积分100 专家积分20 在线时间1689 小时注册时间最后登录
论坛徽章:0
原帖由 doyourself 于
16:18 发表
不过虽然话是这么说的,但是实际上,对于一个高度优化过的编译器来讲,表现出来的行为可能正是前面的贴子所说的,会把常量表达式展开...当然,这个只是就这个例子而言,如果不能展开成常量表达式,在代码级别的表达式中左 ...
是的,编译器优化会自动处理一些事情。
例如
void test()
{
& & int a = 1;
}复制代码
会被优化成什么都不做。
呵呵:wink:,或许我该用汇编来写刚才的例子,但那样估计不仅会没人看,还会被人骂
C调 ---- C语言
都是最喜欢的
UID空间积分0 积分4912阅读权限50帖子精华可用积分4912 信誉积分100 专家积分20 在线时间1689 小时注册时间最后登录
小富即安, 积分 4912, 距离下一级还需 88 积分
帖子主题精华可用积分4912 信誉积分100 专家积分20 在线时间1689 小时注册时间最后登录
论坛徽章:0
原帖由 doyourself 于
16:18 发表
不过虽然话是这么说的,但是实际上,对于一个高度优化过的编译器来讲,表现出来的行为可能正是前面的贴子所说的,会把常量表达式展开...当然,这个只是就这个例子而言,如果不能展开成常量表达式,在代码级别的表达式中左 ...
什么是“左深连树”和“右深连树”?
能不能举个例子说明一下。
我不是计算机科班出身的,很多概念都不知道。
C调 ---- C语言
都是最喜欢的
UID787701空间积分0 积分79阅读权限10帖子精华可用积分79 信誉积分100 专家积分0 在线时间3 小时注册时间最后登录
白手起家, 积分 79, 距离下一级还需 121 积分
帖子主题精华可用积分79 信誉积分100 专家积分0 在线时间3 小时注册时间最后登录
论坛徽章:0
原帖由 zx_wing 于
16:22 发表
什么是“左深连树”和“右深连树”?
能不能举个例子说明一下。
我不是计算机科班出身的,很多概念都不知道。
其实就是一个表达式的语法分析树的形状问题,嗯,我也说错了一点,叫左深/右深树 一个二叉树如果所有右边的子女都是叶的话就称为左深树.在做语法分析--&代码的时候计算的代价较小&&其实就是你文中的意思 :p
[ 本帖最后由 doyourself 于
16:44 编辑 ]
shut up & code新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
UID空间积分0 积分22阅读权限10帖子精华可用积分22 信誉积分100 专家积分0 在线时间1 小时注册时间最后登录
白手起家, 积分 22, 距离下一级还需 178 积分
帖子主题精华可用积分22 信誉积分100 专家积分0 在线时间1 小时注册时间最后登录
论坛徽章:0
本帖最后由 中山八富力 于
11:24 编辑
在rhel 5.0 下,好奇想验证一下unsigned char、unsigned short的长度和极值,发现如下:
测试代码&&test.c:
#include &stdio.h&
int main(void)
& && &&&unsigned char uc=-1;
& && &&&unsigned short us=-1;
& && &&&printf(&sizeof(uc)=%d, max value=%d\n&,sizeof(uc),uc);
& && &&&printf(&sizeof(us)=%d, max value=%d\n&,sizeof(us),us);
& && &&&printf(&uc+1 = %d\n&,uc+1);
& && &&&printf(&us+1 = %d\n&,us+1);
& && &&&return 0;
使用gcc test.c 进行编译
运行结果:
sizeof(uc)=1, max value=255
sizeof(us)=2, max value=65535
uc+1 = 256
us+1 = 65536
请问这里 uc+1、us+1&&不是应该等于 0 吗?? 我的问题出在哪里了??望各位牛人解答一下
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
UID空间积分0 积分156797阅读权限100帖子精华可用积分156797 信誉积分3621 专家积分55 在线时间5723 小时注册时间最后登录
帖子主题精华可用积分156797 信誉积分3621 专家积分55 在线时间5723 小时注册时间最后登录
论坛徽章:86
在用 printf(&...%d&, uc+1) 打印 uc + 1 的时候,uc 会先被提升为整形(即 int),然后加一,然后打印。另外一个类似。
I can explain it for you, but I can’t understand it for you.
UID空间积分0 积分22阅读权限10帖子精华可用积分22 信誉积分100 专家积分0 在线时间1 小时注册时间最后登录
白手起家, 积分 22, 距离下一级还需 178 积分
帖子主题精华可用积分22 信誉积分100 专家积分0 在线时间1 小时注册时间最后登录
论坛徽章:0
谢谢2楼的解答,按照你的提示,我把代码修改如下:
#include &stdio.h&
int main(void)
& && &&&unsigned char uc=-1;
& && &&&unsigned short us=-1;
& && &&&unsigned int ui=-1;
& && &&&printf(&sizeof(uc)=%x, max value=%x\n&,sizeof(uc),uc);
& && &&&printf(&sizeof(us)=%x, max value=%x\n&,sizeof(us),us);
& && &&&printf(&sizeof(ui)=%x, max value=%x\n&,sizeof(ui),ui);
& && &&&printf(&1:uc+1 = %x\n&,uc+1);
& && &&&uc += 1;
& && &&&printf(&2:uc+1 = %x\n&,uc);
& && &&&printf(&1:us+1 = %x\n&,us+1);
& && &&&us += 1;
& && &&&printf(&2:us+1 = %x\n&,us);
& && &&&printf(&1:ui+1 = %x\n&,ui+1);
& && &&&ui += 1;
& && &&&printf(&2:ui+1 = %x\n&,ui);
& && &&&return 0;
运行结果:
sizeof(uc)=1, max value=ff
sizeof(us)=2, max value=ffff
sizeof(ui)=4, max value=ffffffff
1:uc+1 = 100
2:uc+1 = 0
1:us+1 = 10000
2:us+1 = 0
1:ui+1 = 0
2:ui+1 = 0
1、%d换为%x,能在一定程度上解决问题
2、若printf函数里,设计计算,貌似会先将其提升为整型。(这里无法考证是提升为有符号还是无符号,因为unsigned char、unsigned short对比int太短了)
3、若计算不在printf里进行,则一切都是正确的。
还有一个问题:
unsigned int好像不受上述影响。why??
UID空间积分0 积分156797阅读权限100帖子精华可用积分156797 信誉积分3621 专家积分55 在线时间5723 小时注册时间最后登录
帖子主题精华可用积分156797 信誉积分3621 专家积分55 在线时间5723 小时注册时间最后登录
论坛徽章:86
本帖最后由 MMMIX 于
13:56 编辑
谢谢2楼的解答,按照你的提示,我把代码修改如下:
1、%d换为%x,能在一定程度上解决问题
不存在解决问题一说,因为一开始就没有问题。你之所以有疑惑,不是因为代码有问题,而是因为你不理解它的行为。
2、若printf函数里,设计计算,貌似会先将其提升为整型。(这里无法考证是提升为有符号还是无符号,因为unsigned char、unsigned short对比int太短了)
不是貌似,而是肯定,这是 C 标准里面规定了的。即使不存在计算,那些 char, short 型也会被提升为 int 型(因为你用了 %d or %x),而且是 signed int(singed int 足够表示被提升类型的值),这些在 ISO C99 的 section 6.3.1.1 有描述,被称为 integer promotions.
3、若计算不在printf里进行,则一切都是正确的。
前面也不存在错误,这里之所以和前面结果不同,是因为在前面 (printf 中) 是整形提升,而在这里是截断。例如 unsigned char uc = 0xff, 则 uc + 1 = 0x100,截断为 8 位后结果就是 0。
还有一个问题:
unsigned int好像不受上述影响。why??
对,unsigned int 在这里不存在提升问题,都是截断。
I can explain it for you, but I can’t understand it for you.
UID空间积分0 积分22阅读权限10帖子精华可用积分22 信誉积分100 专家积分0 在线时间1 小时注册时间最后登录
白手起家, 积分 22, 距离下一级还需 178 积分
帖子主题精华可用积分22 信誉积分100 专家积分0 在线时间1 小时注册时间最后登录
论坛徽章:0
谢谢!~~~获益良多~~~~
UID空间积分0 积分526阅读权限20帖子精华可用积分526 信誉积分1120 专家积分0 在线时间658 小时注册时间最后登录
丰衣足食, 积分 526, 距离下一级还需 474 积分
帖子主题精华可用积分526 信誉积分1120 专家积分0 在线时间658 小时注册时间最后登录
论坛徽章:5
长见识啦 ,你的解答太详细了,谢谢
人生的转折
UID1728743空间积分0 积分85674阅读权限100帖子精华可用积分85674 信誉积分1131 专家积分599 在线时间1210 小时注册时间最后登录
帖子主题精华可用积分85674 信誉积分1131 专家积分599 在线时间1210 小时注册时间最后登录
论坛徽章:0
如果细心的话还可以发现,&%.2x& 在对待 char 与 unsigned char 变量时也不同#include &stdio.h&
int
main (void)
{
& && &&&char a[256];
& && &&&unsigned char b[256];
& && &&&
& && &&&for (i=0; i&256; i++) {
& && && && && & a[i] = b[i] =
& && &&&}
& && &&&printf (&display array a:\n&);
& && &&&for (i=0; i&256; i++) {
& && && && && & printf (&%.2x%s&, a[i],
& && && && && && && && &(i + 1) % 16 ? & & : &\n&);
& && &&&}
& && &&&printf (&display array b:\n&);& && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && &
& && &&&for (i=0; i&256; i++) {
& && && && && & printf (&%.2x%s&, b[i],
& && && && && && && && &(i + 1) % 16 ? & & : &\n&);
& && &&&}
& && &&&return 0;
}复制代码运行结果display array a:
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f
40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f
60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f
ffffff80 ffffff81 ffffff82 ffffff83 ffffff84 ffffff85 ffffff86 ffffff87 ffffff88 ffffff89 ffffff8a ffffff8b ffffff8c ffffff8d ffffff8e ffffff8f
ffffff90 ffffff91 ffffff92 ffffff93 ffffff94 ffffff95 ffffff96 ffffff97 ffffff98 ffffff99 ffffff9a ffffff9b ffffff9c ffffff9d ffffff9e ffffff9f
ffffffa0 ffffffa1 ffffffa2 ffffffa3 ffffffa4 ffffffa5 ffffffa6 ffffffa7 ffffffa8 ffffffa9 ffffffaa ffffffab ffffffac ffffffad ffffffae ffffffaf
ffffffb0 ffffffb1 ffffffb2 ffffffb3 ffffffb4 ffffffb5 ffffffb6 ffffffb7 ffffffb8 ffffffb9 ffffffba ffffffbb ffffffbc ffffffbd ffffffbe ffffffbf
ffffffc0 ffffffc1 ffffffc2 ffffffc3 ffffffc4 ffffffc5 ffffffc6 ffffffc7 ffffffc8 ffffffc9 ffffffca ffffffcb ffffffcc ffffffcd ffffffce ffffffcf
ffffffd0 ffffffd1 ffffffd2 ffffffd3 ffffffd4 ffffffd5 ffffffd6 ffffffd7 ffffffd8 ffffffd9 ffffffda ffffffdb ffffffdc ffffffdd ffffffde ffffffdf
ffffffe0 ffffffe1 ffffffe2 ffffffe3 ffffffe4 ffffffe5 ffffffe6 ffffffe7 ffffffe8 ffffffe9 ffffffea ffffffeb ffffffec ffffffed ffffffee ffffffef
fffffff0 fffffff1 fffffff2 fffffff3 fffffff4 fffffff5 fffffff6 fffffff7 fffffff8 fffffff9 fffffffa fffffffb fffffffc fffffffd fffffffe ffffffff
display array b:
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f
40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f
60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f
80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f
90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f
a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af
b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf
c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cf
d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc dd de df
e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec ed ee ef
f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff复制代码从而也证明了 MMMIX 的观点
当我们在为生活而疲惫奔波的时候
生活却渐渐离我们远去
find our way, find our style
Platinum's BLog
性别:男,爱好:女。
UID空间积分0 积分4251阅读权限50帖子精华可用积分4251 信誉积分991 专家积分105 在线时间2558 小时注册时间最后登录
小富即安, 积分 4251, 距离下一级还需 749 积分
帖子主题精华可用积分4251 信誉积分991 专家积分105 在线时间2558 小时注册时间最后登录
论坛徽章:0
果然是精华贴,以后真的要主义细节问题了!!}

我要回帖

更多关于 unsigned char 范围 的文章

更多推荐

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

点击添加站长微信