-1%256的值是多少?

从数学上来说(参见TAOCP,第一卷),应该是:
    a % b = a - b * floor(a / b), 其中floor(x)表示不大于x的最大整数, /是数学中的除法,不取整

所以,数学上的定义保证了 a % b 与 b 同号.本题的计算过程,为:
 -1 % 256 = -1 - 256 * floor(-1 / 256)
          = -1 - 256 * (-1)
          = -1 + 256
          = 255

但是在C++语言定义中,没有限制计算方式;既可以与数学上的定义相同(a%b 与 b 同号),也可以用其他方法(如为了令商取整后的绝对值尽可能小,使 a%b 与 a 同号).所以, 255 或 -1 都有可能.

因此如果是unsigned 8位类型的,应该是255,但是如果是int型的,应该是-1;

来自为知笔记(Wiz)

时间: 2024-10-02 23:43:36

-1%256的值是多少?的相关文章

解决SpringMVC提交数组时不能超过256个值

@InitBinder public void initBinder(WebDataBinder binder) { binder.setAutoGrowCollectionLimit(Integer.MAX_VALUE); }

CV:object detection(LBP)

LBP(Local Binary Pattern,局部二值模式)是一种用来描述图像局部纹理特征的算子:它具有旋转不变性和灰度不变性等显著的优点.它是首先由T. Ojala, M.Pietik?inen, 和 D. Harwood 在1994年提出,用于纹理特征提取.而且,提取的特征是图像的局部的纹理特征: 1.LBP特征的描述 原始的LBP算子定义为在3*3的窗口内,以窗口中心像素为阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0.这样

相似图片搜索的原理和实现——颜色分布法

#1,原理 每张图片都可以生成颜色分布的直方图(color histogram).如果两张图片的直方图很接近,就可以认为它们很相似. 任何一种颜色都是由红绿蓝三原色(RGB)构成的,所以上图共有4张直方图(三原色直方图 + 最后合成的直方图). 如果每种原色都可以取256个值,那么整个颜色空间共有1600万种颜色(256的三次方).针对这1600万种颜色比较直方图,计算量实在太大了,因此需要采用简化方法.可以将0-255分成四个区:0-63为第0区,64-127为第1区,128-191为第2区,

操作系统思考 第三章 虚拟内存

第三章 虚拟内存 作者:Allen B. Downey 原文:Chapter 3 Virtual memory 译者:飞龙 协议:CC BY-NC-SA 4.0 3.1 简明信息理论 比特是二进制的数字,也是信息的单位.一个比特有两种可能的情况,写为0或者1.如果是两个比特,那就有四种可能的组合,00.01.10和11.通常,如果你有b个比特,你就可以表示2 ** b个值之一.一个字节是8个比特,所以它可以储存256个值之一. 从其它方面来讲,假设你想要储存字母表中的字母.字母共有26个,所以你

相似图片搜索的原理

http://www.ruanyifeng.com/blog/2011/07/principle_of_similar_image_search.html http://www.ruanyifeng.com/blog/2013/03/similar_image_search_part_ii.html 相似图片搜索的原理 作者: 阮一峰 日期: 2011年7月21日 上个月,Google把"相似图片搜索"正式放上了首页. 你可以用一张图片,搜索互联网上所有与它相似的图片.点击搜索框中照相

Ostu算法原理

%使用OTSU算法进行二值化后的图像 close all;clear all;clc %% I = imread('C.jpg'); I=rgb2gray(I); %% I1=im2uint8(I(:)); depth=256; imhist(I1,depth); counts=imhist(I1,depth);%灰度直方图中,横坐标表示像素的灰度级别,纵坐标为像素点的个数 %  imhist(I,n)  计算和显示图像I的直方图,n为指定的灰度级数目,默认为256.如果I是二值图像,那么n仅有

再回首,Java温故知新(三):Java基本数据类型之整型

注:因为此次学习打算看一遍相关Java源码,所以更新速度一开始会相对慢一些.还有就是不得不佩服那群大牛啊,算法不是一时半会能懂的,本来打算直接弄懂的,后来感觉这样效率太低了,所以决定大体上通读一遍,反正以后肯定还会回来再次学习. Java作为一种强类型语言,意味着每一个变量都会有特定的类型,Java共有8种基本类型,其中有4种整型(byte.short.int.long).两种浮点型(float.double).1种字符型(char)和一种布尔型(boolean),值得注意的是,虽然字符串Str

AES对称加密算法原理

原著:James McCaffrey 翻译:小刀人 原文出处:MSDN Magazine November 2003 (Encrypt It) 本文的代码下载:msdnmag200311AES.exe (143KB) 本文假设你熟悉 C# 和 位(bit)操作. 摘要 AES(The Advanced Encryption Standard)是美国国家标准与技术研究所用于加密电子数据的规范.它被预期能成为人们公认的加密包括金融.电信和政府数字信息的方法.本文展示了AES的概貌并解析了它使用的算法

Python中Unicode码和非Unicode码引起的错误与格式转换

1.1. 问题 Problem You need to deal with data that doesn't fit in the ASCII character set. 你需要处理不适合用ASCII字符集表示的数据. 1.2. 解决 Solution Unicode strings can be encoded in plain strings in a variety of ways, according to whichever encoding you choose: Unicode