草庐IT

个位数

全部标签

c++ - 获取 char 中的位数

如何获取类型char中的位数?我知道CHAR_BIT来自climits.这被描述为»宏产生用于表示char类型对象的位数的最大值。«在Dikumware'sCReference.我知道这意味着char中的位数,不是吗?我可以用std::numeric_limits得到相同的结果吗?不知何故?std::numeric_limits::digits返回7正确但不幸的是,因为这个值在这里尊重8位字符的符号...... 最佳答案 CHAR_BIT根据定义,是[signed/unsigned]char类型的对象表示中的位数.numeric_l

c++ - C/C++ 位数组或位 vector

我正在学习C/C++编程并且遇到过“位数组”或“位vector”的用法。无法理解他们的目的?这是我的疑问-它们是否用作bool标志?能否改用int数组?(当然有更多的内存,但是..)Bit-Masking的概念是什么?如果位掩码是简单的位操作以获得适当的标志,如何为它们编写一个程序?是否不难在头脑中执行此操作以查看与十进制数相对应的标志是什么?我正在寻找应用程序,以便我更好地理解。对于例如-Q.给定一个文件,其中包含范围(1到1百万)内的整数。有一些重复项,因此缺少一些数字。找到寻找失踪的最快方法数字?对于上述问题,我已经阅读了告诉我使用位数组的解决方案。如何在位中存储每个整数?

algorithm - 在数组中找到时间最短的中位数

我有一个数组让我们说a={1,4,5,6,2,23,4,2};现在我必须找到从2到6(奇数总项)的数组位置的中位数,所以我所做的是,我将a[1]转换为a[5]在arr[0]到arr[4]中,然后我对它进行排序并将arr[2]写为中位数。但每次我将值从一个数组放入另一个数组时,我的初始数组的值都保持不变。其次,我已经排序,所以这个过程花费了相当多的**time**。所以我想知道是否有任何不同的方法可以减少我的计算时间。需要了解的任何网站、Material、内容以及如何做? 最佳答案 使用std::nth_element来自这是O(N)

Qt音视频开发34-不同库版本不同位数的库和头文件的引用

一、前言做开发过程中难免遇到需要引入第三方库的时候,而且需要在不同库版本、不同系统、不同位数下都需要。第三方的库版本众多,一般在大版本中的小版本都是兼容的,但是大版本不兼容,比如ffmpeg目前就有1-6六个大版本,除去1几乎没人用那还剩5个大版本,目前主要还是4居多。vlc主要是vlc2和vlc3两个版本,这些大版本头文件和库文件都不兼容的,所以如果项目中要同时支持这些版本,需要有标志位让用户自己选择使用哪个版本,而且还有不同的位数32/64要求。市面上32位的机器尽管很少,但是最近这些年还是需要支持的,尤其是一些老旧的机器上,几乎都还是32位的系统,当然未来的趋势肯定是64位的硬件和系统,

c++ - 该程序中的 16 位数学是否调用了未定义的行为?

前几天,我将我的Windows构建环境从MSVC2013升级到MSVC2017,你瞧,我的程序中一个多年来一直运行良好(并且在g++/clang下仍然运行良好)的函数突然开始给出不正确的结果使用MSVC2017编译。我能够重写函数以再次给出正确的结果,但这段经历让我感到好奇——我的函数是调用了未定义的行为(直到现在恰好给出了正确的结果),还是代码定义明确并且MSVC2017有问题吗?下面是一个简单的程序,显示了我重写前后的函数玩具版本。特别是,函数maybe_invokes_undefined_behavior()(如下所示)在使用值为-32762的参数调用时是否会调用未定义的行为?#

c++ - 从位数组中提取任何更聪明的方法?

我有一些内存区域可以被视为“位数组”。它们等同于unsignedchararr[256];但它会更好地被认为是bitarr[2048];我正在使用它访问单独的位#defineGETBIT(x,in)((in)[((x)/8)]&1但我在代码的很多地方都做了很多,通常是在性能关键部分,我想知道是否有更智能、更优化的方法来做到这一点。额外信息:体系结构:ARM9(32位);海合会/Linux。物理数据表示无法更改-它由外部提供或映射供外部使用。 最佳答案 我不这么认为。事实上,许多CPU架构不会单独访问位。在C++上你有std::bit

c++ - 找到四分位数

我写了一个程序,用户可以在其中输入任意数量的值到vector中,它应该返回四分位数,但我一直收到“vector下标超出范围”错误:#include"stdafx.h"#include#include#include#include#include#includeintmain(){usingnamespacestd;coutquantile;doublex;//invariant:homeworkcontainsallthehomeworkgradessofarwhile(cin>>x)quantile.push_back(x);//checkthatthestudententered

c++ - 编译时计算编码 n 个不同状态所需的位数

编辑:在最初的问题中有一个错误的公式,并且尝试的算法正在做一些与预期完全不同的事情。抱歉,我决定重写问题以消除所有混淆。我需要计算在编译时(结果将用作非类型模板参数)存储n不同状态所需的最少位数:constexprunsignedbitsNeeded(unsignedn);或通过模板结果应该是:+-----------+--------+|numberof|bits||states|needed|+-----------+--------+|0|0|*ornotdefined||||1|0|||||2|1|||||3|2||4|2|||||5|3||6|3||7|3||8|3|||||

c++ - 我可以控制调试器窗口中显示的 float 和 double 变量的位数吗?

在VisualStudio2012中,我正在寻找一种方法来自定义自动、局部变量和监window口中浮点类型的默认显示。我熟悉NativeVisualizer(Natvis)实用程序,但没有看到任何调试器格式化工具来完成此操作。同样,我不知道有什么方法可以覆盖任何原始类型的默认显示(除了启用十六进制)。目标是创建显示字符串,其中针对与点、几何vector等对应的类型扩展了较少的数字,但在扩展类型时仍会显示所有精度。因此,例如我可能有一个点类型的变量显示为(0.000,1.234,2.429)而不是m_x=0.00000000,m_y=1.234245213...在中间Autos窗口的列。

c++ - 计算存储数字所需位数的最快方法是什么

我正在尝试优化一些位打包和解包例程。为了进行打包,我需要计算存储整数值所需的位数。这是当前代码。if(n==-1)return32;if(n==0)return1;intr=0;while(n){++r;n>>=1;}returnr; 最佳答案 不可移植,使用大多数现代架构上可用的位扫描反向操作码。它被暴露为intrinsic在VisualC++中。可移植地,问题中的代码不需要边缘情况处理。为什么需要一位来存储0?无论如何,我都会忽略问题的边缘。这样可以有效地完成胆量:if(n>>16){r+=16;n>>=16;}if(n>>8)