void printf_array_b(uint16_t n[], uint32_t start, uint32_t end) { uint16_t i, j, temp; for(i = start/16; i <= end/16; i++) { temp = n[i]; for(j = 0; j < 16; j++) { if(temp&0x8000) { printf(" %d", 1); } else { printf(" %d", 0); } temp<<=1; } printf("\n"); } printf("\n"); }
时间: 2023-06-20 20:06:29 浏览: 107
C实现与 uint64_t 相同功能的类
这是一个用于打印16位整型数组中指定范围的二进制表示的函数。它的参数包括一个16位整型数组n[],以及要打印的范围start和end。
函数通过遍历范围内的元素,将每个元素转换为二进制,并打印出来。具体来说,它将start和end转换为对应的数组下标,然后遍历这些下标对应的元素。对于每个元素,它将其存储在一个临时变量temp中,并使用位运算将其转换为二进制。最后,函数将打印出的二进制字符串输出到控制台上。
需要注意的是,函数打印的二进制表示是以每行16位的方式进行排列的。因此,如果要打印的范围跨越了多行,函数将在每行末尾打印一个换行符。最后,函数还会在所有的二进制表示打印完毕后再打印一个额外的换行符,以方便阅读。
阅读全文