ANSI C标准之值保留(value preserving)原则

当把整形操作数混合使用时,结果可能是有符号数,也肯能是无符号数,取决于操作数的类型相对大小。---------《c专家编程》第一章

eg.

#define ARRAY_LENGTH(a) (sizeof(a)/sizeof(a[0]))
int main(int argc, const char * argv[])
{
    int a[5] = {1,2,3,4,5};
    int len = -1;
    
    if(len<ARRAY_LENGTH(a))cout<<"TRUE"<<endl;
    else cout<<"FALSE"<<endl;
    
    return 0;
}

程序运行结果“FALSE”,原因是sizeof()返回的为unsigned型,所以在if判断中,len被提升到unsigned型,-1的二进制形式FFFFFFFF,作为无符号型,表示32位最大的正整数,十进制43亿多,因此数组的长度,小于len返回false.




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
subspace-preserving(保子空间性质)是一个数学概念,在线性代数和数值分析经常被使用。它是指一个线性变换或者一个算法在转换过程能够保持原始向量所处的子空间结构不变。 子空间是向量空间的一个重要的概念,它是由向量空间某些向量的线性组合所构成的。子空间具有一些特定的性质,包括零向量在其、封闭性和确定性等。 当一个线性变换或者一个算法具有保子空间性质时,它意味着在变换过程原始向量所处的子空间结构保持不变。换句话说,任意向量在该变换或算法之后仍然可以由原始向量的线性组合表示。 举个例子,假设有一个二维平面上的向量集合,它们构成了一个平面子空间。如果一个线性变换或算法具有保子空间性质,那么经过该变换或算法处理后,原始平面子空间的向量仍然可以线性组合表示,且在新的向量集合仍然构成一个平面子空间。 保子空间性质在很多数学和工程应用都是非常重要的。例如,在信号处理,当利用线性变换对信号进行处理时,保子空间性质能够确保信号在变换过程不产生额外的信息丢失。在图像处理,保子空间性质能够确保图像在压缩和重构过程能够保持较好的视觉质量。 总之,subspace-preserving(保子空间性质)是指一个线性变换或者一个算法在转换过程能够保持原始向量所处的子空间结构不变。这个概念在数学和工程应用具有很大的实用性和重要性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值