这要看你需要什么样的输出。C语言可以自动进行数据类型的转换,所以,你可以使用d格式输出整型数值,或者使用c格式输出字符。
这段代码将分别以十六进制和无符号十进制的形式打印 unsigned char 数组,并且每打印4个元素后换行,以提高输出的可读性。
这要看你需要什么样的输出。C语言可以自动进行数据类型的转换,所以,你可以使用d格式输出整型数值,或者使用c格式输出字符。
想以十六进制输出就写%x或%X;想以十进制输出就写%u
_stprintf(mac+t*3, _T("%2x-"), nlist->wlanBssEntries[c].dot11Bssid[t]);"%2x-" 要加一个2作为格式控制。你这里显示不出来,是因为MAC地址的某个位中,不是两位数字,而是一位的,比如0A,这样在%x格式化的时候,TCHAR数组中保存的三位分别是'A' '-' '\0'看明白了么,中间...
uchar(unsigned char c){char a[8]; for(int i=0;i<8;c/=2)a[i++]=c%2; for(int i=7;i>=0;)putchar(a[i--]+'0'); putchar('\n');}int main(){unsigned char a[4]={1,2,4,8}; for(int n=0;n<4;)prt_uchar(a[n++]); printf("\n"); return 0;} ...
首先,你要找到这个字符数组中数字的位置,假如这样一个字符数组 unsigned char a[]="my string exists 1 number";其中有个1对吧,位置18,所以是a[17],注意,在内存中a[17]的值是1的ASCII码值49,也就是说a[17]实际上等于49,那么,所以你如果想输出1就必须这样输出:printf("%d",a[17]-...
你存入的是数字,却要按字符输出,可能会有转换问题 可以把数字转换成字符,int key[5];char str[5];sprintf(str+i,"%d",key[i]);(省了for循环)然后再输出str,应该就可以了,
你用 string& 是对的,char* 一般是指字符串。字符串不需要unpack,直接可以当字节码数组使用。原来...
和char数组没有很大的区别 ,只是最高位也拿来存数值 不作为正负标志的符号位。一位一位的读取可以采用右移的方法 void main(){ int a[8],i;unsigned char c=0x32;for(i=0;i<8;i++){ a[7-i]=((c>>i)&&0x01);//将c从低位到高位一次存入到数组a中 } } ...