`
隐形的翅膀
  • 浏览: 497077 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

uint64_t 一些操作

 
阅读更多
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)和有符号整型(如int)。`uint32_t`是C++标准库中的一个无符号32位整数类型,而`int`则是一个有符号整数类型,它的大小依赖...

    C实现与 uint64_t 相同功能的类

    在C语言中,`uint64_t`是一个无符号64位整数类型,通常用于处理大整数或需要高效位操作的场景。然而,并非所有C编译器都支持`stdint.h`库,这可能导致在某些平台上无法直接使用`uint64_t`。为了解决这个问题,本文...

    uint128_t:C ++无符号128位整数类型

    uint128_t C ++的无符号128位整数类型版权所有(c)2013-2018 Jason Lee @ calccrypto在gmail.com 请参阅许可文件以...在代码中在代码中只需完成#include "uint128_t.h" # include &lt; iostream&gt;# include " uint128_t.h

    uint256_t:C ++无符号256位整数类型

    uint256_t C ++的无符号256位整数类型 版权所有(c)2013-2018 Jason Lee @ calccrypto在gmail.com 请参阅许可文件以获得许可。 致谢 在Auston Sterling的大力帮助下 感谢StefanDeigmüller找到操作员中的错误*。 ...

    浅谈int8_t int64_t size_t ssize_t的相关问题(详解)

    同样,`uint8_t`、`uint16_t`、`uint32_t`和`uint64_t`是对应的无符号整数类型,它们的位宽与有符号类型相同,但不包含负值。 `size_t`是一个无符号整型,通常用来表示内存对象的大小。在32位系统上,它通常是`...

    DES加密算法(c语言实现)

    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) { // 整体加密过程,...

    传感网应用开发:编写关键函数.pptx

    `OnRxDone(uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr)`在接收到数据包并且接收过程完整无误时触发。这个函数接收四个参数,其中`payload`是接收到的数据缓冲区指针,`size`是接收到的数据包长度...

    LCD.rar_MGL

    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, ...

    用结构体的方式来操作单片机内eeprom进行数据掉电保存.pdf

    - `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];` 这些数据类型可以...

    stm32 volatile变量的正确使用

    volatile uint32_t square(volatile uint32_t *ptr) { return *ptr * *ptr; } ``` 这里的`volatile`关键字表明,虽然我们两次访问了`*ptr`,但由于其值可能在任何时刻被硬件改变,因此每次都需要从内存中重新读取。...

    keil 8位 并接 16 位

    在这个案例中,我们的目标是将两个8位无符号数(`uint8_t`)合并成一个16位无符号数(`uint16_t`)。具体实现步骤如下: 1. **高8位处理**:先获取第一个8位无符号数(`data_H`),将其作为结果的高8位。 2. **低8...

    avr操作DS1302

    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()`: 在主电源断开前...

    inttypes.h&stdint.h 头文件

    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_...

    lcm_driver.rar_176*220_lcm_液晶屏 单片机

    8. `void lcd_draw_rectangle(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t color)`: 绘制一个矩形。 这些函数的实现细节会依赖于具体液晶屏的硬件特性,例如数据传输协议(SPI、I2C或并行...

    stm32-at24c64.rar_STM32 IO AT2402_at24c64_at24c64 stm32_stm32 AT

    同时,还有可能包含读写AT24C64特定地址的函数,如`write_eeprom(uint16_t addr, uint8_t data)`和`read_eeprom(uint16_t addr, uint8_t *data)`。 总的来说,这个项目涉及了STM32的GPIO编程、IIC通信协议的实现...

    基于STM32F407的TFTLCD接口函数

    void LCD_PrintChar(uint16_t x, uint16_t y, char ch, uint16_t fontWidth, uint16_t fontHeight, uint16_t color); ``` `font.h`文件则定义了字符集和字体结构,可能包括字符编码、字模宽度、高度、每个点阵对应...

    inttypes.h stdint.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`: 这些是最有效的(通常也是最快的)具有至少指定位宽的整数类型,可能比...

    利用C\C++实现AES算法的加、解密运算

    (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...

    nRF51822库函数速查

    函数原型:`uint32_t sd_rand_application_vector_get(uint8_t *p_buff, uint8_t length);` 说明:从随机数池中获取`length`个字节的随机数据,并将其存储在`p_buff`指向的缓冲区中。如果成功,则返回0;如果失败...

    stdint.h stdint.h

    - `int_fast8_t`, `uint_fast8_t`, `int_fast16_t`, `uint_fast16_t`, `int_fast32_t`, `uint_fast32_t`, `int_fast64_t`, `uint_fast64_t`:这些类型在目标平台上提供最快的操作,但可能比最小宽度类型更宽。...

Global site tag (gtag.js) - Google Analytics