1. 两个无符号32位整数,组合成一个无符号64位整数
高位向左移动32位,在后端添加32个0,再与低位做或的运算,形成一个64位数
uint64_t make64(uint32_t high, uint32_t low)
{
return (uint64_t) high << 32 | low;
}
2. 取高32位数,直接向右移动32位,去掉低32位,得到高32位数
uint32_t high32(uint64_t value)
{
return value >> 32;
}
3.
与32个0和32个1的64位数做与运算,得到低32位
uint32_t low32(uint64_t value)
{
//return value & 0-(32)-1(32);
return value & 2^32;
}
4. 打印输出 uint_64, long long 是存储了两个long, 地址相连
long long longint;
longint = 0x1BCDEFABCDEFCDEF; /* 2003520930423229935 */
printf("%x%x\n", *(((int*)(&longint))+1), longint); /* Correct */
printf("%lld\n",longint); /* Correct */
printf("%llx\n",longint); /* Correct */
输出
1bcdefabcdefcdef
2003520930423229935
1bcdefabcdefcdef
符号属性 长度属性 基本型 所占位数 取值范围 输入符举例 输出符举例
-- -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%u
signed -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%u
unsigned -- char 8 0 ~ 2^8-1 %c %c、%d、%u
[signed] short [int] 16 -2^15 ~ 2^15-1 %hd
unsigned short [int] 16 0 ~ 2^16-1 %hu、%ho、%hx
[signed] -- int 32 -2^31 ~ 2^31-1 %d
unsigned -- [int] 32 0 ~ 2^32-1 %u、%o、%x
[signed] long [int] 32 -2^31 ~ 2^31-1 %ld
unsigned long [int] 32 0 ~ 2^32-1 %lu、%lo、%lx
[signed] long long [int] 64 -2^63 ~ 2^63-1 %I64d
unsigned long long [int] 64 0 ~ 2^64-1 %I64u、%I64o、%I64x
-- -- float 32 +/- 3.40282e+038 %f、%e、%g
-- -- double 64 +/- 1.79769e+308 %lf、%le、%lg %f、%e、%g
-- long double 96 +/- 1.79769e+308 %Lf、%Le、%Lg
分享到:
相关推荐
在计算机科学中,数据通常以不同的格式存储,例如整型数据可以有无符号整型(如uint32_t)和有符号整型(如int)。`uint32_t`是C++标准库中的一个无符号32位整数类型,而`int`则是一个有符号整数类型,它的大小依赖...
在C语言中,`uint64_t`是一个无符号64位整数类型,通常用于处理大整数或需要高效位操作的场景。然而,并非所有C编译器都支持`stdint.h`库,这可能导致在某些平台上无法直接使用`uint64_t`。为了解决这个问题,本文...
uint128_t C ++的无符号128位整数类型版权所有(c)2013-2018 Jason Lee @ calccrypto在gmail.com 请参阅许可文件以...在代码中在代码中只需完成#include "uint128_t.h" # include < iostream># include " uint128_t.h
uint256_t C ++的无符号256位整数类型 版权所有(c)2013-2018 Jason Lee @ calccrypto在gmail.com 请参阅许可文件以获得许可。 致谢 在Auston Sterling的大力帮助下 感谢StefanDeigmüller找到操作员中的错误*。 ...
同样,`uint8_t`、`uint16_t`、`uint32_t`和`uint64_t`是对应的无符号整数类型,它们的位宽与有符号类型相同,但不包含负值。 `size_t`是一个无符号整型,通常用来表示内存对象的大小。在32位系统上,它通常是`...
void permutation_function(uint64_t input, uint64_t subkey, uint64_t &output) { // P盒置换并结合子密钥 } void des_encrypt(uint64_t plaintext, uint64_t key, uint64_t &ciphertext) { // 整体加密过程,...
`OnRxDone(uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr)`在接收到数据包并且接收过程完整无误时触发。这个函数接收四个参数,其中`payload`是接收到的数据缓冲区指针,`size`是接收到的数据包长度...
4. 字符与字符串显示:`void LCD_ShowChar(uint16_t Xpos, uint16_t Ypos, uint8_t Num, uint8_t Size, uint16_t FontColor, uint16_t BackColor)`函数可以显示单个字符,而`void LCD_ShowString(uint16_t Xpos, ...
- `uint8_t uint8_t_d;` - `uint16_t uint16_t_d;` - `uint32_t uint32_t_d;` - `int8_t int8_t_d;` - `int16_t int16_t_d;` - `int32_t int32_t_d;` - `float float_d;` - `uint16_t arr[10];` 这些数据类型可以...
volatile uint32_t square(volatile uint32_t *ptr) { return *ptr * *ptr; } ``` 这里的`volatile`关键字表明,虽然我们两次访问了`*ptr`,但由于其值可能在任何时刻被硬件改变,因此每次都需要从内存中重新读取。...
在这个案例中,我们的目标是将两个8位无符号数(`uint8_t`)合并成一个16位无符号数(`uint16_t`)。具体实现步骤如下: 1. **高8位处理**:先获取第一个8位无符号数(`data_H`),将其作为结果的高8位。 2. **低8...
5. `DS1302_getTime(uint8_t *hours, uint8_t *minutes, uint8_t *seconds, uint8_t *date, uint8_t *month, uint8_t *year)`: 读取DS1302的时间并存储到传入的指针变量中。 6. `DS1302_backup()`: 在主电源断开前...
1. `intN_t` 和 `uintN_t` 类型,如 `int8_t`, `uint8_t`, `int16_t`, `uint16_t`, `int32_t`, `uint32_t`, `int64_t`, `uint64_t`,分别对应不同位宽的有符号和无符号整数。 2. 类似于 `inttypes.h` 中的 `int_...
8. `void lcd_draw_rectangle(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t color)`: 绘制一个矩形。 这些函数的实现细节会依赖于具体液晶屏的硬件特性,例如数据传输协议(SPI、I2C或并行...
同时,还有可能包含读写AT24C64特定地址的函数,如`write_eeprom(uint16_t addr, uint8_t data)`和`read_eeprom(uint16_t addr, uint8_t *data)`。 总的来说,这个项目涉及了STM32的GPIO编程、IIC通信协议的实现...
void LCD_PrintChar(uint16_t x, uint16_t y, char ch, uint16_t fontWidth, uint16_t fontHeight, uint16_t color); ``` `font.h`文件则定义了字符集和字体结构,可能包括字符编码、字模宽度、高度、每个点阵对应...
6. `int_fast8_t`, `uint_fast8_t`, `int_fast16_t`, `uint_fast16_t`, `int_fast32_t`, `uint_fast32_t`, `int_fast64_t`, `uint_fast64_t`: 这些是最有效的(通常也是最快的)具有至少指定位宽的整数类型,可能比...
(2)定义位操作LOAD32H(x, y) 将uint8_t y[4] 转换成 uint32_t x,STORE32H(x, y) 将uint32_t x 转换成 uint8_t y[4],BYTE(x, n) 从uint32_t x中提取从低位开始的第n个字节,MIX(x) 密钥扩展中的SubWord(RotWord...
函数原型:`uint32_t sd_rand_application_vector_get(uint8_t *p_buff, uint8_t length);` 说明:从随机数池中获取`length`个字节的随机数据,并将其存储在`p_buff`指向的缓冲区中。如果成功,则返回0;如果失败...
- `int_fast8_t`, `uint_fast8_t`, `int_fast16_t`, `uint_fast16_t`, `int_fast32_t`, `uint_fast32_t`, `int_fast64_t`, `uint_fast64_t`:这些类型在目标平台上提供最快的操作,但可能比最小宽度类型更宽。...