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
分享到:
相关推荐
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找到操作员中的错误*。 ...
(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...
在其中发现官方例程中都是把uint8_t类型数组直接强转为uint32_t类型然后字编程写入flash,在原子的例程有一个移位的操作,把两个uint8_t移位成uint16_t然后半字编程。。(在实际编程中按字编程的内部操作也是按照按...
uint16_t tv_sec; uint16_t tv_usec; modbus_t *mb; uint16_t tab_reg[32]={0}; uint8_t tab_bits[32]={0}; uint8_t tab_inbits[32]={0}; if(argc) { printf("Useage: mbtcp <ip_addr> \n"); exit(0); } mb...
uint32_t ad5665r_a_value = 0; uint32_t ad5665r_b_value = 0; uint32_t ad5665r_c_value = 0; uint32_t ad5665r_d_value = 0; 取值范围0~65535 根据选择DAC型号不一样,这里取值不一样,我这里是使用16bit 提示一下,...
void IIC2_Send_Byte(uint8_t txd); //IIC发送一个字节 uint8_t IIC2_Read_Byte(unsigned char ack);//IIC读取一个字节 uint8_t IIC2_Wait_Ack(void); //IIC等待ACK信号 void IIC2_Ack(void); //IIC发送...
void write ( uint64_t offset, const char * buffer, uint64_t size); void read ( uint64_t offset, char * buffer, uint64_t size); }; 这是你必须提供的。 无论您的 ext2 图像在哪里,您都必须使用具有所描述...
uint8_t DS18B20ID[8]; float temperature; /* 复位所有外设,初始化Flash接口和系统滴答定时器 */ HAL_Init(); /* 配置系统时钟 */ SystemClock_Config(); /* 初始化串口并配置串口中断优先级 */ MX_...
uint8_t FPM_Address[] = { 0xFF,0xFF,0xFF,0xFF }; uint8_t FPM_Password[] = { 0x00,0x00,0x00,0x00 }; SoftwareSerial mySerial(3, 2); //请注意修改此处端口号与硬件匹配 FPMXX fs = FPMXX(&mySerial, FPM_...
入口参数:uint8_t *TxBuffer和uint8_t len 。 (2) TxBuffer:指针,指向用户需要发送的的LoRa无线数据的首地址。 (3) Len:用户想要发送的LoRa无线数据长度。 (4) LoRa_Send()没有返回值。如下: ...
使用ndk-build编译即可使用共享库该演示修改ModifyIBored函数里GetModuleBaseAddr的参数,选择需要挂钩的so模块找到需要hook的指令地址,计算转换(指令的内存地址-指令所在模块的基址),然后写入uint32_t ...
包含 SHA-1,SHA-256,SHA-512,MD-5,CRC-32,Tiger-192 六种常见散列...用法:反复调用 void append(uint8_t *src, uint64_t length) 最后使用 void close() 函数,即得到结果。 void print() 输出和 HashCalc 程序相同
PWM_TIM->DIER &= (uint16_t)~(TIM_IT_CC1 | TIM_IT_CC2);//关闭中断 } //开启输入捕获比较中断 1和2 void pwmIsrAllOn(void) { PWM_TIM->CCR1; PWM_TIM->CCR2; PWM_TIM->DIER |= (TIM_IT_CC1 | TIM_IT_CC2);//...
uint8_t DHT_Get_Temp_Humi_Data(uint8_t buffer[]) 使用此函数需要传入一个8位的的数组。分别用来存储 湿度整数部分、湿度小数部分、温度整数部分、温度小数部分、校验和,注意!湿度小数部分接收到的值始终为0。 ...
uint8_t DHT_Get_Temp_Humi_Data(uint8_t buffer[]) 使用此函数需要传入一个8位的的数组。分别用来存储 湿度整数部分、湿度小数部分、温度整数部分、温度小数部分、校验和,注意!湿度小数部分接收到的值始终为0。 ...
也就是说,这个bs只能支持64位以内的位存储和操作;bs一旦定义就不能动态增长了。本资源附件中实现了一个动态Bitset,和标准bitset兼容。 /** @defgroup Bitset Bitset位集类 * @{ */ //根据std::bitset改写,函数...
uint8_t HardResetPin = 255, //连接的引脚数 RESET to (输入从 100 到 255,如果不使用) SHT3xSensor SensorType = SHT30, //传感器类型,SHT30、SHT31 或 SHT35。SHT3xMode Mode=Single_HighRep_ClockStretch //...
(3) 在赋值操作中, 原来资源的引用计数会减一,新指向的资源引用计数会加一。 std::shared_ptr<Test> p1(new Test); std::shared_ptr<Test> p2(new Test); p1 = p2; (4) 引用计数加一/减一操作是原子性的,所
void J1850VPWCore::init(uint8_t rxPin, uint8_t txPin, uint8_t activeLevel = HIGH, bool debug = false); rxPin-输入信号的引脚 txPin-输出信号的引脚 activeLevel-取决于收发器电路的逻辑状态将总线驱动到高压...