草庐IT

八进制

全部标签

C++ 我需要编写一个将十六进制转换为十进制并使用递归的函数,但我不断收到运行时错误

这是一个类,所以它必须使用递归,我已经迭代地编写了一个工作代码,但我无法让它在递归中工作,我真的迷路了。我已经为此工作了一个星期。任何指导或建议都会非常有帮助。这是我的函数,我需要将十六进制作为字符指针并输出它对应的十进制。我经常遇到堆栈溢出或内存分配运行时错误,任何人都可以找出问题所在并引导我朝着正确的方向前进吗?inthexToDecimal(constchar*hex,intoffset,intpower){if(offset>=0){hexChar=*(hex+offset);if(isalpha(hexChar)){hexChar=toupper(hexChar);hexNu

c++ - 为什么在 C++17 中使用十六进制浮点常量?

C++17添加十六进制浮点常量(floatingpointliteral)。为什么?举几个例子来说明好处如何。 最佳答案 float以2为基数存储在x86/x64处理器中,而不是以10为基数:https://en.wikipedia.org/wiki/Double-precision_floating-point_format.由于无法准确表示许多十进制float,例如十进制0.1可以表示为0.1000000000000003或0.0999999999999997-任何具有足够接近十进制0.1的基数2表示形式。由于这种不精确性,例如

visual-studio-code - 如何在 VS Code 的 Watch 面板中显示十六进制值?

我开始在Linux上使用VSCode,我希望看到变量的十六进制值接近它的值。我需要它,因为变量是一个掩码,所以它在某些位置由0和1组成。我没能找到设置或类似的东西来添加它。这可能吗?我正在使用C++代码。我看到地址是十六进制的,那么有没有办法也以十六进制查看变量的值? 最佳答案 在监window口中,输入,h. 关于visual-studio-code-如何在VSCode的Watch面板中显示十六进制值?,我们在StackOverflow上找到一个类似的问题:

c++ - 如何使用 _mm_extract_ps SSE GCC instrinc 函数将十六进制 float 转换为 C/C++ 中的 float

我正在为二维卷积编写SSE代码,但SSE文档非常稀少。我正在使用_mm_dp_ps计算点积并使用_mm_extract_ps获得点积结果,但是_mm_extract_ps返回一个十六进制float,我不知道如何将这个十六进制float转换为常规float。我可以使用__builtin_ia32_vec_ext_v4sf返回一个float但我想保持与其他编译器的兼容性。_mm_extract_ps(__m128__X,constint__N){union{inti;floatf;}__tmp;__tmp.f=__builtin_ia32_vec_ext_v4sf((__v4sf)__X,

c++ - 将二进制值转换为浮点值的计算器——我做错了什么?

我有以下代码,它以二进制形式将6个float写入磁盘并读回:#include#includeintmain(){intnumSegs=2;intnumVars=3;float*data=newfloat[numSegs*numVars];for(inti=0;i输出:00.230.460.690.921.1500.230.460.690.921.15当我在hexer中加载文件时,我们得到:000000001f856b3e1f85eb3ed7a3303f1f856b3f3333933f----------------我想直接从小数计算浮点值。例如:1f856b3e变为0.23,1f85e

c++ - 十六进制字符到 std::string 的 constexpr 转换

我有很多这样的字符串:"343536"_hex我想将其转换成相应的字节串。我正在使用C++11并定义了一个用户定义的字符串文字以将它们转换为十六进制字符串。但是,我目前拥有的转换不能作为我正在寻找的constexpr进行评估。特别是我想使用这样的东西,但作为constexpr:std::stringoperator""_hex(constchar*s,std::size_tslen){std::stringstr;str.reserve(slen);charch[3];unsignedlongnum;ch[2]='\0';for(;slen;slen-=2,s+=2){ch[0]=s[

c++ - 找到与另一个二进制模式匹配的所有 2 位值,然后将它们相加

第一个值:我有一个二进制值,它实际上是一个紧凑的2位值序列。(也就是说,二进制值中的每2位代表0、1、2或3。)因此,例如0、3、1、2变为00110110。在这个二进制字符串中,我只关心3(或者,我可以翻转位,只关心0,如果这样可以让你的回答更容易的话)。所有其他数字都无关紧要(我们稍后会讨论原因)。第二个值:我有第二个二进制值,它也是一个压缩的2位值系列,以相同的方式表示。它与第一个值的长度相同。数学:我想要第二个值中与第一个值中的3具有相同位置的2位数字的总和。换句话说,如果我有:First:11000011Second:01111101然后我的答案将是“2”(我将“第二”中的第

c++ - qDebug - 如何以位输出数据(二进制格式)

qDebug()可以输出二进制格式的数据吗?例如,我想检查一些状态变化:unsignedcharstatus;...qDebug()我想生成二进制格式的输出,类似于:Status:1011 最佳答案 如果你想以二进制打印,你可以使用:binunsignedcharstatus=11;qDebug()QString::number()unsignedcharstatus=11;qDebug()QString::arg()unsignedcharstatus=11;//toprintasstringwith8characterspadd

c++ - 在 C/C++ 中解析二进制消息流

我正在为二进制协议(protocol)(JavadGRIL协议(protocol))编写解码器。它由大约一百条消息组成,数据格式如下:structMsgData{uint8_tnum;floatx,y,z;uint8_televation;...};这些字段是ANSI编码的二进制数字,它们彼此紧随其后,没有间隙。解析此类消息的最简单方法是将输入的字节数组转换为适当的类型。问题是流中的数据是打包的,即未对齐。在x86上,这可以通过使用#pragmapack(1)来解决。但是,这在其他一些平台上不起作用,或者由于进一步处理未对齐的数据而导致性能开销。另一种方法是为每种消息类型编写一个特定的

c++ - 将二进制编码的十进制 (BCD) 解码为无符号整数

在我的项目中使用的值是用4位二进制编码的十进制数(BCD)表示的,它最初存储在一个字符缓冲区中(例如,由指针指向constunsignedchar*).我想将输入的BCD字符流转换为整数。你能告诉我一个有效和快速的方法吗?数据格式示例和预期结果:BCD*2;1001011101100101=9765"9""7""6""5"非常感谢! 最佳答案 unsignedintlulz(unsignedcharconst*nybbles,size_tlength){unsignedintresult(0);while(length--){res