国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

c語言中十六進制轉二進制顯示的實現方法

2020-02-24 14:30:13
字體:
來源:轉載
供稿:網友

c語言中如何實現十六進制轉二進制顯示?相信不少小伙伴們都被這個難題困擾過,那么我們現在將帶著這個疑問去看看c語言中十六進制轉二進制顯示的實現方法吧。


//======================================

?

//輸出格式: hex2bin 5e.

//得到: 0101 1110

//======================================

#include <stdio.h>
#include <limits.h>

char *bitstr(char *, void const *, size_t);

int main(int argc, char **argv)
{

?? unsigned char value;
?? char *pointer;
?? char ebits[CHAR_BIT * sizeof value + 1];

??
?? value = 0;

?? for (pointer = argv[1]; *pointer; ++pointer) {
???? value <<= 4;
???? switch (*pointer) {
??????? case 'a':
??????? case 'A':
??????????? value += 0xa;
??????????? break;
??????? case 'b':
??????? case 'B':
??????????? value += 0xb;
??????????? break;
??????? case 'c':
??????? case 'C':
??????????? value += 0xc;
??????????? break;
??????? case 'd':
??????? case 'D':
??????????? value += 0xd;
??????????? break;
??????? case 'e':
??????? case 'E':
??????????? value += 0xe;
??????????? break;
??????? case 'f':
??????? case 'F':
??????????? value += 0xf;
??????????? break;
??????? default:
??????????? value += *pointer - '0';
??????????? break;
? }
?? }
?? bitstr(ebits, &value, sizeof value);
?? printf("The binary representation of 0x%s is ", argv[1]);

?? for (pointer = ebits, value = 0; *pointer != '/0'; ++pointer) {
??? if(value > 3) {
?????????? value = 0;
???? putchar(' ');
?????????? putchar(*pointer);
??? }
??? else {
???? value++;
??????? putchar(*pointer);
??? }
?? }
??

?? return 0;
}


char *bitstr(char *str, const void *obj, size_t n)
{
?? unsigned char mask;
?? const unsigned char *byte = obj;
?? char *const ptr = str;

?? while (n--) {
????? mask = ((unsigned char)-1 >> 1) + 1;
????? do {
???????? *str++ = (char)(mask & byte[n] ? '1' : '0');
???????? mask >>= 1;
????? } while (mask);
?? }
?? *str = '/0';
?? return ptr;
}

關于c語言中十六進制轉二進制顯示的實現方法將為大家介紹到這里啦,如果你還有不懂的地方就請留言給小編吧。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 五常市| 灵川县| 浏阳市| 嘉荫县| 麻栗坡县| 土默特左旗| 双柏县| 富锦市| 三江| 滨海县| 临高县| 泾川县| 晋城| 社旗县| 红安县| 乃东县| 沂南县| 楚雄市| 方城县| 长海县| 甘孜县| 余江县| 繁昌县| 中江县| 高要市| 礼泉县| 友谊县| 车致| 东方市| 荆州市| 湖北省| 元氏县| 栾城县| 凉山| 策勒县| 荔波县| 苏尼特左旗| 南澳县| 吉木乃县| 溆浦县| 浪卡子县|