Dicom标签之(0028,0103) Pixel Representation

本文详细介绍了像素值的数据表示形式,重点讲解了二补数的概念及其在无符号整数和有符号整数中的应用。通过两个转换方法展示了如何将十进制数转换为二进制的二补数形式,以及如何从二补数转换回十进制。内容包括转换步骤和示例,帮助理解二补数在计算机存储和计算中的作用。
摘要由CSDN通过智能技术生成

(0028,0103) Pixel Representation
像素值的数据表示形式

Enumerated Values:

0000H
unsigned integer. 无符号整数,直接保存像素值本身

0001H
2’s complement. 二补数,保存的是像素值的二补数,其实就是有符号整数,此时像素值可正可负


二补数

在二进制的世界里,正负数统一以补码的形式表示,编程时对应的数据类型是signed int、signed short等等,比如我们将4字节读取至signed int的变量里,直接就可以得到十进制数(其实十进制、十六进制本质上都是一串0、1的二进制数据)

二进制和十进制之间的转换过程如下:
转 https://www.cnblogs.com/sleepy/archive/2011/07/10/2102528.html

方法1:

10進制轉2進制:

<1>直接將10進制轉為2進制,正負號省略。

<2>如果數目少於X bits,在左邊補0直到X bits。

<3>如果是正號,不需要其他動作。

如果是負號,使用1補數:將0變1,1變0;1補數加1,形成2補數。

例(1):將+6以16bit儲存,使用2補數。

      +6 => 110 => 0000000000000110

例(2):將-125以16bit儲存,使用2補數。

      -125 => 1111101 => 0000000001111101

           => 1111111110000010 => 1111111110000011

2進制轉10進制:

<1>如果最左邊的bit是0(正數)。

1-1…將數字由二進制轉為十進制。

1-2…在數字前加+號。

例:將0000000000000110轉為十進制(使用2補數)

   0000000000000110 => 6 => +6

<2>如果最左邊的bit是1 (負數)。

2-1…2補數減1,變為1補數。

2-2…將所有的0變1;1變0。

2-3…將數字由2進制轉為10進制。

2-4…在數字前加-號。

例:將1111111110000100轉為十進制(使用2補數)

   1111111110000011 => 1111111110000010

                    => 0000000001111101 => 125 => -125

方法2:

10進制轉2進制:

<1>將數字改為2進制;正負號省略。

<2>如果數目少於X bits,在左邊補0直到X bits。

<3>如果是正號,不需要其他動作。

如果是負號,維持最右邊的0直到第一個1(包含)不變,其餘的皆變換。

(0變1,1變0)

例(1):將+6以16bit儲存,使用2補數

     +6 => 110 => 0000000000000110

例(2):將-125以16bit儲存,使用2補數

     -125 => 1111100 => 0000000001111100 => 1111111110000100

2進制轉10進制:

<1>如果最左邊的bit是0 (正數)。

1-1…將數字由2進制轉為10進制。

1-2…在數字前加+號。

例:將0000000000000110轉為10進制(使用2補數)

   0000000000000110 => 6 => +6

<2>如果最左邊的bit是1 (負數)。

2-1…維持最右邊的bits不變直到第一個1(包含),其餘的皆變換。

(0變1,1變0)。

2-2…將數字由2進制轉為10進制。

2-3…在數字前加-號。

例1111111110000011轉為10進制(使用2補數)

1111111110000010 => 0000000001111101 => 125 => -125

二者之間的差異

10進制轉2進制:

方法1需要先轉換到1補數,再用1補數+1轉為2補數,使用上較為簡單,但計算速度比較慢。

方法2就直接轉換成2補數,在使用上比較容易出錯,不過計算速度會比較快。

2進制轉10進制:

方法1須先使-1變為1補數,然後才能轉換成10進制,計算較為簡單,計算速度緩慢。

方法2可以直接轉換,比較容易出錯,但計算速度較快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值