问题标签 [stdint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
22121 浏览

bit-shift - 将 16 位整数转换为 8 位整数?

我正在实现 C 代码以将 16 位符号和幅度整数复制到 8 位符号和幅度整数。这甚至可能吗?有人可以解释一下如何做到这一点吗?

代码片段:

如何将前两位数字复制到变量b,然后将后两位数字复制到变量c?

0 投票
2 回答
401 浏览

java - 用于 Java 的 stdint.h?

是否有实现标准数据类型的 java 库,因为它们在 C 中可用?

在 Java 中,一切都是签名的,因此使用byteto storeuint8_t会带来一些问题,例如:

印刷

代替

我想到了这样的事情:

0 投票
2 回答
144 浏览

c++ - 获得两倍宽的类型

基本上,我想(在编译时)从 stdint 类型获得两倍宽的类型。我可以像这样手动完成

等等,我只是想确保这还不存在。我正在使用 Visual Studio 2010 C++0X(我知道这很烦人)并且已经有了 boost 依赖。有谁知道这个的现有实现?

0 投票
2 回答
490 浏览

c - Notepad++ 和 stdint.h 类型

Notepad++ C 和 C++ 内置语言不识别 stdint 类型(uint8_t 等),因此这些类型不会着色。

有没有办法提取内置语言,以便插入 stdint 类型,而不必从头开始创建新语言?

0 投票
2 回答
8581 浏览

c++ - uint32_t vs uint_fast32_t vs uint_least32_t

我看到了不同类型的整数定义stdint.h。我将以无符号 32 位整数为例。

  1. uint32_t显然是一个 32 位的无符号整数。那是我一直使用的那个。

  2. uint_fast32_tuint_least32_t:有什么区别,什么uint32_t时候应该使用它们而不是uint32_t

现在,我看到uintX_tX 是 24、40、48 和 56 的位置。在我的代码中,我必须使用 48 位和 56 位整数。作为一个例子,我想uint24_t被定义为这样的东西:

我对吗 ?而且,你会建议我使用uint48_t我的 48 位无符号整数还是应该使用普通的uint64_t

感谢您的解释。

0 投票
2 回答
2856 浏览

c - C-Types int32_t int_least32_t 等之间的区别

我曾经读过 int32_t 正好是 32 位长,而 int_least32_t 至少只有 32 位,但它们在我的 stdint.h 中都有相同的 typedef:

那么区别在哪里呢?他们完全一样...

0 投票
1 回答
21086 浏览

visual-c++-6 - VC6:致命错误 C1083:无法打开包含文件:“stdint.h”

在 VC6 中编译时,我收到错误:

(致命错误 C1083:无法打开包含文件:'stdint.h':没有这样的文件或目录)

谁能解释我为什么会收到此错误?

0 投票
2 回答
34 浏览

c++ - Array 和 var 没有预定义的内容

我为我的 LED 立方体制作了一个 Animation.cpp,其中包含每个帧和每一层的 uint16_t 二维数组。我在 .cpp 中初始化了数组,并且还有一个包含帧数量的 var。但是当它运行时,数组似乎只有随机数据(来自 ram),并且 int w/帧数为 0。

链接到 cpp: http ://hastebin.com/kunemopece.avrasm

标题链接:http: //hastebin.com/duvijipeya.vala

我几乎是 CPP/GCC 的初学者,那么,我做错了什么?

0 投票
1 回答
282 浏览

c++ - 如何通过 TCP 套接字发送 int16_t?

如何在 C++ TCP 套接字上安全地传输 int16_t?在下面的代码中,服务器似乎没有收到正确的值,我猜这是因为没有为 int16_t 定义 htonl/ntohl。

客户:

服务器:

0 投票
1 回答
72 浏览

c - 精确宽度整数类型的对象存储

如果存储在其中的值符合要求的范围,是否允许实现使用超过N位作为对象存储intN_t和类型?uintN_t

例如,考虑一个使用 9 位字节的 CPU。为这个 CPU 编写的实现可能有类似的东西typedef __uint8_as_9 uint8_t,假设__uint8_as_9引用了一个编译器关键字,表示一个 9 位无符号整数,它表示一个 8 位无符号整数。当编译器生成将 an 转换unsigned int为这种类型的代码时,它可能(隐式)将数字截断为 9 位,然后屏蔽最高位。这仍然被认为是 的符合定义uint8_t,因为编译器确保 9 位值在 到 的范围0UINT8_MAX

引用 C 标准§7.20.1.1/3,关于精确宽度整数类型(强调我的):

这些类型是可选的。但是,如果实现提供了宽度为 8、16、32 或 64 位的整数类型,没有填充位,并且(对于有符号类型)具有二进制补码表示,则它应定义相应的 typedef 名称。

由于底层存储uint8_t实际上由 9 位组成,这个最重要的位是否被视为填充位?即使它对使用此实现的任何(符合)程序完全透明?